1 自定义溢出按钮样式
<item name="android:actionOverflowButtonStyle">@style/OverflowStyle</item>
<style name="OverflowStyle" parent="@android:style/Widget.Holo.ActionButton.Overflow">
<item name="android:src">@drawable/note_menu_holo_light</item>
</style>
<style name="OverflowMenuStyle" parent="Widget.AppCompat.Light.PopupMenu.Overflow">
<item name="overlapAnchor">true</item>
<item name="android:dropDownWidth">wrap_content</item>
<item name="android:paddingRight">3dp</item>
</style>
或者
mToolBar.setOverflowIcon(getResources().getDrawable(R.drawable.ic_editor_menu));
2 自定义ActionBar左上角的返回键图片样式
mActionBar.setHomeAsUpIndicator(R.drawable.ic_ab_back_holo_light);
3 常用属性说明
<style name="AppTheme.NoActionBar">
<!--状态栏颜色-->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!--控制各个控件被选中时的颜色-->
<item name="colorAccent">@color/colorAccent</item>
<!--页面背景色-->
<item name="android:windowBackground">@color/windowBackg</item>
<!--底部导航栏颜色-->
<item name="android:navigationBarColor">@color/navigationColor</item>
<!--Appbar背景色-->
<item name="android:colorPrimary">@color/colorPrimary</item>
<!--ToolBar上的Title颜色-->
<item name="android:textColorPrimary">@color/textColorPrimary</item>
<!--各个控制控件的默认颜色-->
<item name="android:colorControlNormal">@color/colorControlNormal</item>
</style>
Android actionbar在Material主题中修改样式
3.6 Android中隐藏底部导航栏NavigationBar,以及修改NavigationBar按键颜色及NavigationBar背景颜色。
4 如果要让ActionBar的返回键和溢出按钮默认黑色
<style name="CalendarTheme.WithActionBarColor" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
<item name="android:windowBackground">@color/background_color</item>
<item name="android:actionBarStyle">@style/CalendarOtherActionBarStyle</item>
<item name="android:colorPrimaryDark">@color/primary_color_dark</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:navigationBarColor">@color/navigationBarColor</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:textColorPrimary">#252525</item>
<item name="android:textColorSecondary">#252525</item>
<item name="colorAccent">@color/event_info_background</item>
<item name="colorPrimary">@color/event_info_background</item>
<item name="colorPrimaryDark">@color/event_info_background</item>
<item name="colorControlActivated">@color/event_info_background</item>
<item name="colorControlNormal">@color/navigationBarColor</item>
</style>
parent="Theme.AppCompat.Light.NoActionBar"可以实现ActionBar的返回键和溢出按钮默认黑色,
如果使用该主题的activity中有对于actionbar的操作,类似如下:
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
就要
<item name="android:windowActionBar">true</item>
<item name="android:windowNoTitle">false</item>
避免闪退,
否则就要在布局里面自己搞一个toolbar
然后
mToolBar = (Toolbar) findViewById(R.id.id_toolbar);
//mToolBar.setOverflowIcon(getResources().getDrawable(R.drawable.ic_editor_menu));
mToolBar.setTitleTextColor(Color.parseColor("#333333"));
setSupportActionBar(mToolBar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
//bug:943183 back icon is not support the mirror shows
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
mToolBar.setOnMenuItemClickListener(mToolBarMenuItemClickListener);
5 遇到的一个问题
如果activity中有com.google.android.material.floatingactionbutton.FloatingActionButton
该activity就要是 parent="Theme.AppCompat.****"
如 parent="Theme.AppCompat.Light.NoActionBar"
6 android 把状态栏的图标设置成黑色(白色)
7 标题栏的默认标题是来自Activity在清单文件中的label
属性,为什么要那么做呢?
这样做的好处是可以在清单文件中快速查找到需要的Activity 8 <item name="colorPrimaryDark">@color/event_info_background</item> 可以修改toolbar 上的返回键, srearchview搜索图标 以及title的字体颜色