我在AppBarLayout中有一个工具栏.
以下是两个视图的
XML:
android:id="@+id/appbarlayout"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/App.ThemeOverlay.Toolbar">
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"/>
主题为:
主题适用于活动:
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
@android:color/white
现在,我想为工具栏应用自定义titleTextAppearance.
我知道我可以在我的布局XML中使用app:titleTextAppearance但我想从主题配置它,以便我的应用程序的每个工具栏都具有相同的样式,而无需在每个布局中设置文本外观.
在对AppCompat源代码进行了一些挖掘之后,我发现Toolbar使用当前主题的toolbarStyle作为其默认主题.
此样式的默认值为Widget.AppCompat.ActionBar.
所以我的第一个猜测是在我的主题叠加中覆盖这个样式,并在这个新样式中更改titleTextAppearance:
@style/App.Style.Toolbar
@style/App.TextAppearance.Toolbar.Title
#00FF00 (this is some green)
true
这实际上覆盖了我的工具栏的titleTextAppearance,但它也打破了导航图标:
我的配置打破导航图标有什么问题?
为了记录,我试图删除主题叠加的toolbarStyle并直接在工具栏样式的布局XML中使用=“@ style / App.Style.Toolbar”.
这正确地应用了标题文本外观并且没有打破导航图标,但这不是最佳的,因为我必须将样式应用于我的应用程序的每个工具栏,这就是我从一开始就要避免的.
谢谢你的帮助,
皮埃尔