逻辑上来说就是继承系统自带主题后,对其中想要自定义的部分覆盖重写;
比如下面的代码就是在 Theme.AppCompat.Light.DarkActionBar 这个主题的基础上扩展。你的项目中可能用的不是这个,但逻辑是一样的。
然后注意一点是如果继承的是AppCompat,很多字段应该用<item name="actionBarStyle">这种形式,否则则是<item name="android:actionBarStyle">。
主要需要覆盖的属性包括:actionBarStyle、actionMenuTextColor、actionMenuTextAppearance:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowContentOverlay">@null</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/CustomActionBar</item>
<item name="actionMenuTextColor">@color/common_white</item>
<item name="actionMenuTextAppearance">@style/CustomActionBarMenu</item>
</style>
<!-- ActionBar styles -->
<style name="CustomActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
<item name="titleTextStyle">@style/CustomActionBarTitle</item>
</style>
<!-- ActionBar title text -->
<style name="CustomActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/common_white</item>
<item name="android:textSize">16sp</item>
</style>
<!-- ActionBar menu text -->
<style name="CustomActionBarMenu">
<item name="android:textSize">16sp</item>
</style>