为什么theme.appcompat给白色背景

时间:2014-07-11 07:50:41

标签: android android-source

我在清单中使用android:theme=@style/AppTheme作为应用程序元素。 style.xml文件将此样式定义为

<style name="AppTheme" parent="@style/Theme.AppCompat">

所以我希望活动和菜单选项的背景默认是黑暗的,但它是白色的。我没有在布局中定义任何背景属性。有什么问题?

以下是我对Android资源的分析:

  1. 根据support themes.xml@style/Theme.AppCompat或其父@style/Theme.Base.AppCompat中没有定义背景颜色。

  2. 所以我在base themes.xml查看他们的父@android:style/Theme。我看到下面的元素:

    <item name="colorBackground">@android:color/background_dark</item>

  3. 根据colors.xml

  4. ,我发现background_dark的确切颜色为#ff000000

    为什么Android不在我的活动中使用这种颜色?

2 个答案:

答案 0 :(得分:1)

问题在于styles.xml中的values-v11values-v14正在使用Theme.AppCompat.Light

由于我的手机有API 19,因此它会从values文件夹中获取这些主题,而styles.xml文件夹的Theme.AppCompat位于{{1}}。

答案 1 :(得分:0)

我在onCreate方法中更改主题时遇到同样的问题。

@Override
protected void onCreate(Bundle savedInstanceState) {        
    super.onCreate(savedInstanceState);
    updateTheme();
    setContentView(R.layout.activity_blablabla);
}

我按照updateThemesuper.onCreate

的变更顺序修正了它
@Override
protected void onCreate(Bundle savedInstanceState) {
    updateTheme();        
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_blablabla);
});