安卓系统-Can't更改操作栏文本的颜色



我正在尝试将自定义样式应用于材质主题操作栏。没有什么花哨的,只是简单地改变标题文本的颜色,但我根本无法改变颜色。我在主题xml:中设置了一个主题,一个应用程序主题,如下所示

<resources>
<style name="AppTheme" parent="Base.AppTheme">
<item name="android:navigationBarColor">?android:attr/colorPrimaryDark</item>
<item name="actionBarStyle">@style/AppBarLayout</item>
</style>
<style name="Base.AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryVariant">@color/colorPrimaryDark</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorSecondary">@color/colorSecondary</item>
<item name="colorSecondaryVariant">@color/colorSecondaryDark</item>
<item name="colorOnPrimary">@color/colorTextLight</item>
<item name="colorOnSecondary">@color/colorTextDark</item>
<item name="colorError">@color/colorError</item>
</style>
</resources>

被引用的动作栏样式在样式xml中定义为:

<style name="AppBarLayout" parent="Widget.AppCompat.ActionBar">
<item name="background">?attr/colorPrimaryDark</item>
<item name="titleTextStyle">@style/AppBarText</item>
</style>

title TextStyle引用的样式也在样式xml中定义为:

<style name="AppBarText" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:textColor">@color/colorError</item>
</style>

我尝试过后一种风格的其他属性,例如:

<item name="android:titleTextStyle">@color/colorError</item>
<item name="titleTextStyle">@color/colorError</item>
<item name="colorOnPrimary">@color/colorError</item>
<item name="android:textColorPrimary">@color/colorError</item>

我还尝试将AppBarText样式与其他属性一起应用到titleTextStyle,例如android:textAppearance。唉,运气不好。

我该如何更改?也许我误解了材料组件的工作原理?

我不确定这是否有效,但请尝试一下以下代码:

int labelColor = getResources().getColor(R.color.label_color);
String сolorString = String.format("%X", labelColor).substring(2); // !!strip alpha value!!
Html.fromHtml(String.format("<font color="#%s">text</font>", сolorString), TextView.BufferType.SPANNABLE); 
getSupportActionBar().setTitle(colorString);

相关内容

  • 没有找到相关文章

最新更新