Android样式无法正确覆盖

时间:2019-02-20 19:36:18

标签: android

我正在尝试在Android应用程序中设置主题设置,但是样式标签继承似乎无法正常工作。该应用程序正在使用提供给父级而不是子级的值。

在values / styles.xml中有以下内容

<style name="AppTheme" parent="BaseAppTheme">
    <item name="colorAccent">@color/blue</item>
</style>

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorAccent">@color/green</item>
</style>

我在这里应用主题

MainActivity.java

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setTheme(R.style.AppTheme);
    ...
}

我期望使用colorAccent标签的元素显示为蓝色,但是它们显示为绿色。应用程序中没有其他任何东西可以直接引用样式标签BaseAppTheme。

2 个答案:

答案 0 :(得分:0)

应该在调用onCreated之前创建主题。如以下代码所示

 private void OnSelection(object sender, SelectedItemChangedEventArgs e)
        {
           ((ListView)sender).SelectedItem = null;
        }

答案 1 :(得分:0)

就我而言,问题在于我在我的风格中覆盖了 values > style.xml 中的 AppTheme。但我执行应用程序的设备中的 Android 版本高于 API 26。

那是怎么回事?在主要风格的 values-v26 > style.xml 中已经有一个 AppTheme。所以我只需要创建一个 values-v26 > style.xmlAppTheme 在我的风格的 res 中,就是这样.