- 布局中引入ToolBar
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.fai.tools.ui.toolbar.ToolBarActivity"> <android.support.v7.widget.Toolbar android:id="@+id/activity_toolBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" > </android.support.v7.widget.Toolbar> </android.support.constraint.ConstraintLayout>
- 将该toolBar设置为actionBar,而后再设置title,subtitle和navigationIcon,这些东西也能够直接在布局中进行设置
private void initActionBar() { toolbar = findViewById(R.id.activity_toolBar); setSupportActionBar(toolbar); setTitle("ToolBar例子"); //这里咱们设置了一个SVG矢量图为 navigationIcon,只支持5.0以上的机器使用 if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { toolbar.setNavigationIcon(R.drawable.back_icon_white_24dp); } toolbar.setSubtitle("奔跑吧,兄弟"); }
- 常见到的回调
<?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/first_menu" android:icon="@mipmap/ic_launcher" android:title="First" app:showAsAction="always"/> //会显示在ToolBar的上面 <item android:id="@+id/second_menu" android:icon="@mipmap/ic_launcher" android:title="Second" app:showAsAction="always"/> //会显示在ToolBar的上面 <item android:id="@+id/third_menu" android:icon="@mipmap/ic_launcher" android:title="Third"/> <item android:id="@+id/fourth_menu" android:icon="@mipmap/ic_launcher" android:title="Fourth"/> </menu>
// 生成菜单的方法 有的菜单选项会显示在ToolBar上,有的同伙popwindow显示出来 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.nav_menu,menu); return true; } // 点击menu的item 回调事件 @Override public boolean onMenuItemClick(MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.first_menu: Toast.makeText(getApplicationContext(),"firstMenu clicked",Toast.LENGTH_SHORT).show(); break; case R.id.second_menu: Toast.makeText(getApplicationContext(),"secondMenu clicked",Toast.LENGTH_SHORT).show(); break; case R.id.third_menu: Toast.makeText(getApplicationContext(),"thirdMenu clicked",Toast.LENGTH_SHORT).show(); break; case R.id.fourth_menu: Toast.makeText(getApplicationContext(),"fourthMenu clicked",Toast.LENGTH_SHORT).show(); break; } return false; } @Override public boolean onOptionsItemSelected(MenuItem item) { //给导航按钮添加返回功能 if(item.getItemId() == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); }