它用来代替ActionBar,但是比ActionBar更加灵活,相当于可以写在布局文件中的ActionBar;与DrawerLayout的使用的时候,DrawerLayout可以覆盖在ToolBar上,并且ToolBar和ActionBar不能同时使用
使用
隐藏actionbar
//先隐藏ActionBar,可以继承一个不带ActionBar的Theme,如:
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"
布局文件中引用
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:title="@string/app_name" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#FFF"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我不是SlideMenu"
android:textColor="@color/colorPrimary"
android:textSize="30sp" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
ToolBar替代ActionBar--在Activity中设置
/**
* 设置toolbar
*/
private void setToolbar() {
//替代actionbar
setSupportActionBar(toolbar);
//获取actionbar对象
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("应用详情");
//设置ActionBar的home按钮可用---启用actionbar的home按钮可用
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
}
toolBar.setTitle("ToolBar");//设置标题
toolBar.setNavigationIcon(iconRes);//设置图标
toolBar.setOnMenuItemClickListener();//设置Menu Item点击
设置actionbar的home按钮的点击事件
@Override
public boolean onOptionsItemSelected (MenuItem item){
if (item.getItemId() == android.R.id.home) {
//如果当前点击的是home按钮,才退出
//直接写finish他暴力--因为actionbar上可能会有好多按钮
finish();
}
return super.onOptionsItemSelected(item);
}
给actionbar添加菜单按钮
//添加菜单按钮
@Override
public boolean onCreateOptionsMenu (Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
+菜单按钮的布局
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search"
android:enabled="true"
android:icon="@drawable/ic_about"
android:title="搜索"
app:showAsAction="always" />
</menu>