自定义中需要使用style 进行自定义样式
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarDivider">@null</item>
<item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
<!-- <item name="android:actionBarTabStyle">@style/MyActionBarTabs</item> -->
<item name="android:actionBarTabBarStyle">@style/MyActionBarTabBars</item>
<item name="android:actionMenuTextColor">@android:color/holo_green_light</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="actionBarDivider">@null</item>
<item name="actionBarTabTextStyle">@style/MyActionBarTabText</item>
<!-- <item name="actionBarTabStyle">@style/MyActionBarTabs</item> -->
<item name="actionBarTabBarStyle">@style/MyActionBarTabBars</item>
<item name="actionMenuTextColor">@android:color/holo_green_light</item>
</style>
其中可以看到, 使用 support兼容库时( getSupportActionBar() ),item 内部的name 不可以加 android ,不在android命名空间下;
其它定义比较简单 比如修改标题背景色,不是兼容包
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" type="text/css"><!--ActionBar的颜色-->
<item name=colorPrimary>@color/primary</item>
<!-- 随主题而改变的颜色(如CheckBox的颜色)-->
<item name=colorAccent>@color/accent</item>
<!--状态栏的颜色 (使用support包时似乎无效。)-->
<item name=colorPrimaryDark>@color/primary_dark</item>
<!--ActionBar的样式-->
<item name=actionBarStyle>@style/AppTheme.ActionBarStyle</item>
</style>
<style name="AppTheme.ActionBarStyle" parent="Widget.AppCompat.ActionBar.Solid">
<item name=android:titleTextStyle>@style/AppTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="AppTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" ><!--ActionBar标题文字颜色-->
如何消除底部边框
<style name="MyAppTheme" parent="android:Theme.Holo.Light">
<item name="android:windowContentOverlay">@null</item>
</style>
在android 5.0 中还需要调用actionbar中的setElevation(0);
在android 5.0 之后 相关的style 属性所代表的含义如 图-1 所示:
图 - 1