我正在构建一个在运行时加载特定主题的活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
if (shouldLoadLight()) {
setTheme(R.style.ThemeLight);
} else {
setTheme(R.style.ThemeDark);
}
super.onCreate(savedInstanceState);
...
}
使用Light主题,工具栏为白色,内容为白色背景。使用Dark主题,工具栏为深灰色,内容也在白色背景上。 (与Light.DarkActionBar旧主题一样)
我需要将自定义主题应用于工具栏以获得良好的触摸反馈颜色,但是,由于活动主题是动态的,我无法在我的布局XML中设置它。
这是我到目前为止所尝试的内容:
theme.xml
<resources>
<!-- LIGHT -->
<style name="ThemeLight" parent="Theme.AppCompat.Light.NoActionBar">
<!-- here, i want grey ripple, it's provided by the light theme already -->
</style>
<!-- DARK -->
<style name="ThemeDark" parent="Theme.AppCompat.Light.NoActionBar">
<!-- here, i want white ripple, like with the Dark.ActionBar theme -->
<item name="toolbarStyle">@style/ToolbarDark</item> <!-- not working -->
<item name="actionbarTheme">@style/ToolbarDark</item> <!-- not working -->
</style>
<style name="ToolbarDark" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- here, i want white ripple, like with the Dark.ActionBar theme -->
</style>
</resources>
是否知道如何从theme.xml实现这样的工具栏样式而不是布局中的android:theme=
xml属性?
非常感谢, 皮埃尔。
答案 0 :(得分:0)
请参阅此question
中 LordRaydenMK 的回答在这里,您还可以在使用Appcompat Activity时使用工具栏的主题属性。
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
希望它会有所帮助。