我已经在App上使用了AppCompat Light DarkActionBar主题。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
是否可以更改此ActionBar的背景颜色和文字颜色?如果是,怎么样?
答案 0 :(得分:46)
以下代码将允许您完全设置操作栏的样式。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
<item name="actionBarTheme">@style/ThemeOverlay.AppTheme.ActionBar</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppTheme.PopupMenu</item>
</style>
覆盖操作栏样式以更改背景颜色或高程。
<style name="Widget.AppTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
<!-- action bar background - without android prefix -->
<item name="background">...</item>
<!-- action bar elevation - without android prefix -->
<item name="elevation">4dp</item>
</style>
覆盖操作栏主题以定义操作栏内所有视图的特殊行为,例如操作项,涟漪背景颜色,文本颜色。
<style name="ThemeOverlay.AppTheme.ActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<!-- title text color -->
<item name="android:textColorPrimary">...</item>
<!-- subtitle text color -->
<item name="android:textColorSecondary">?android:textColorPrimary</item>
<!-- action menu item text color -->
<item name="actionMenuTextColor">?android:textColorPrimary</item>
<!-- action menu item icon color -->
<item name="colorControlNormal">?android:textColorPrimary</item>
</style>
您也可以更改弹出主题。
<style name="ThemeOverlay.AppTheme.PopupMenu" parent="ThemeOverlay.AppCompat.Dark">
<!-- popup menu background - NEVER "android:background" !!! in themes -->
<item name="android:colorBackground">...</item>
<!-- popup menu item text color -->
<item name="android:textColorPrimary">...</item>
</style>
另一方面,以下代码将允许您设置窗口的样式。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- window background - NEVER "android:background" in themes !!! -->
<item name="android:windowBackground">...</item>
<item name="android:textColorPrimary">...</item>
<item name="android:textColorSecondary">...</item>
</style>
您还可以直接在操作栏上更改文本颜色。 但要注意!这不会影响菜单项或图标的文字颜色或波纹颜色!从长远来看,这可能不是你想要的。
<style name="Widget.AppTheme.ActionBar" parent="Widget.AppCompat.ActionBar.Solid">
<!-- title text color -->
<item name="titleTextColor">?android:textColorPrimary</item>
<!-- subtitle text color -->
<item name="subtitleTextColor">?android:textColorSecondary</item>
</style>
答案 1 :(得分:2)
是的,可以更改操作栏上文本的颜色。将此添加到您的活动的onCreate:
中 actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));