- <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
- <item name="colorPrimary">@color/red</item>
- <item name="colorPrimaryDark">@color/green</item>
- <item name="colorAccent">@color/blue</item>
- <item name="android:textColorPrimary">@color/white</item>
- <item name="android:windowActionBar">false</item>
- <item name="android:windowNoTitle">true</item>
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
- </style>
- colorPrimaryDark是我们手机最顶端的状态栏的背景颜色(改变它需要Android5.0以及以上的手机支持才行)。
- colorPrimary是指导航栏的颜色。
- colorAccent是指我们常用控件比如Button等的颜色。
- textColorPrimary是指我们导航栏中标题的颜色。
- windowBackground是指我们窗体的默认颜色。
- navigationBarColor是指Android手机中虚拟按键的背景颜色。
以上来自http://mobile.51cto.com/android-541623.htm
然后需要一个menu副标题的xml文件,toolbar_menu.xml,用来存储item
<item
android:id="id"
android:title="标题"
android:visiable="false"
app:showAsAction ="ifRoom|withText"
/>
<item
android:id="id"
android:title=""
android:visiable="false"
app:showAsAction ="ifRoom|withText"
app:actionLayout = "@layout/item_menu_icon_text"
/>
actionLayout 指向了一个布局,可以在这个布局中定义你想要的控件;
item_menu_icon_text.xml
<TextView
android:id=""android:drawableTop="图片"android:text="文字"/>
就是一个上面图片下面文字的TextView
@Override public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
final MenuItem item = menu.findItem(R.id.action_edit);
item.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(item);
}
});
return super.onCreateOptionsMenu(menu);
}
注意引用actionLayout 之后Menuitem的点击事件要获取.getActionView();
以上就可以实现toolBar的文字和图片同时显示在副标题了