ToolBar的使用

  1. 佈局中引入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>
  1. 將該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("奔跑吧,兄弟");
    }
  1. 常見到的回調
<?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);
    }
相關文章
相關標籤/搜索