我正在尝试在我的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。
发布于 2019-02-21 03:44:41
应该在调用onCreated之前创建主题。如以下代码所示
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
...
}
发布于 2021-01-14 23:19:52
在我的例子中,问题是我在values中重写了AppTheme
,在我的风格中重写了style.xml。但在我执行应用程序的设备上,Android版本比API26更高。
那是什么?在values中已经有了一个AppTheme
-v26> style.xml。所以我只需要创建一个values-v26 > style.xml,在我的风格的res中包含AppTheme
,仅此而已。
https://stackoverflow.com/questions/54794027
复制相似问题