【发布时间】:2018-01-25 15:27:06
【问题描述】:
问题 1
我希望所有Toolbar 看起来都一样,而不是在所有它们中设置样式,
所以我虽然我会为它设置应用程序主题。我希望他们拥有的一件事是colorControlNormal 属性。这些是我的尝试:
代码示例 1:
<resources>
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="toolbarStyle">@style/MyTheme.ToolbarStyle</item>
</style>
<style name="MyTheme.ToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
<item name="colorControlNormal">@color/toolbarColorControlNormal</item>
</style>
</resources>
代码示例 2:
<resources>
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorControlNormal">@color/toolbarColorControlNormal</item>
</style>
</resources>
在代码示例1中,我尝试为Toolbar 属性创建自定义样式,并将其设置为主题,但没有成功。
在 代码示例 2 中,我在全局范围内设置了属性并正常工作。但是,也会影响其他组件,所以它是无效的。
- 为什么 代码示例 1 不起作用?
问题 2
我需要更改所有TabLayout的tabTextColor和tabSelectedTextColor属性,所以我尝试了这个:
代码示例 3:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:tabWidgetStyle">@style/TabsStyle</item>
</style>
<style name="TabsStyle" parent="Widget.Design.TabLayout">
<item name="tabTextColor">@color/tabTextColor</item>
<item name="tabSelectedTextColor">@color/tabSelectedTextColor</item>
</style>
</resources>
但它不起作用,我让它工作的唯一方法是在 XML 中手动设置它们:
<android.support.design.widget.TabLayout
[...]
android:background="?android:attr/colorPrimary"
app:tabTextColor="@color/tabTextColor"
app:tabSelectedTextColor="@color/tabSelectedTextColor" />
- 为什么代码示例 3 不起作用?
最后,我会赞成任何对良好风格和主题指南/书籍的引用。在这方面我真的需要改进。
提前致谢。
【问题讨论】:
-
是否在 AndroidManifes 中设置了主题?
-
@fisher3421 如果我不这样做,第二个代码示例就不会工作。
-
我强烈推荐 github 中的Android-Material-Themes-Demo。通过实践学习。 README.md 中关于样式和主题的精彩概述。
标签: android android-toolbar android-theme android-styles