- 佈局中引入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); }