默认ActionBar:在style.xml文件中定义了AppTheme,它的父主题为Theme.AppCompat.Light.DarkActionBar
,这个DarkActionBar是一个深色的ActionBar主题
指定不带ActionBar的主题,Theme.AppCompat.NoActionBar
,Theme.AppCompat.ActionBar
MaterialDesign是在Android5.0系统中才出现的,为了兼容老系统需要引入App命名空间
AppTheme是淡色主题,则默认ToolBar也是淡色主题,ToolBar上的各种元素就会自动使用深色系,这样效果很差,为是ToolBar单独使用深色主题,要指定它的android:theme属性ThemeOverlay.AppCompat.Dark.ActionBar
,
但此时ToolBar上的按钮弹出的菜单项也会变成深色主题,设置app:pupupTheme将菜单项设为淡色主题
ThemeOverlay.AppCompat.Light
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app.popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
在Activity.java里设置
Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
用android:lable来指定toolbar的标题
给Toolbar增加菜单项
res->new->Directory-new menu->new->Menu resource file->toolbar.xml
item的app:showAsAction属性来设置菜单项的显示方式
always:永远显示在toolbar中如果空间不够就不显示
ifRoom,never
public boolean onCreateOptionsMenu(Menu menu)
public boolean onOptionsItemSelected(MenuItem item)
注意:Toolbar中的action按钮只显示图标,菜单中的action按钮只显示文字
使用Android Studio自带的图标
res->image asset