Androd Toolbar 的簡單使用二

上一篇簡單的介紹瞭如何簡單使用Toolbar,這篇主要介紹Toolbar的進一步設置。

既然Toolbar要替代ActionBar,那麼Toolbar的功能應該更爲強大,在Toolbar上有一些默認的顯示效果,先來看下。

        

通過上圖,不難看出,我們其實是可以爲Toolbar設置以下屬性的:

  • 上級按鈕 (upbutton)   setNavigationIcon
  • APP 的圖標      setLogo
  • 主標題  setTitle
  • 副標題  setSubtitle
  • 設定菜單各按鈕的動作 setOnMenuItemClickListener

在MainActivity的OnCreate() 方法中加入以下代碼:

toolbar.setLogo(R.drawable.ic_launcher);
toolbar.setNavigationIcon(R.drawable.ic_launcher);
toolbar.setTitle(getResources().getString(R.string.app_name));
toolbar.setSubtitle("ToolBar");
toolbar.setOnMenuItemClickListener(this);
toolbar.setTitleTextColor(0xffffffff);
toolbar.setSubtitleTextColor(0xffffffff);


注意:setNavigationIcon(),setOnMenuItemClickListener() 需要放在 setSupportActionBar之後纔會生效

Toolbar菜單效果與ActionBar的實現一樣,都是OptionsMenu。需要在Menu中添加 item ,然後通過Toolbar顯示出來。

res/menu/menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">
    <item
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        android:icon="@drawable/ic_launcher"
        app:showAsAction="always" />
    <item
        android:id="@+id/action_test"
        android:title="@string/action_settings"
        android:orderInCategory="10"
        android:icon="@drawable/ic_launcher"
        app:showAsAction="ifRoom" />

</menu>

然後在MainActivity中添加以下代碼

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onMenuItemClick(MenuItem menuItem) {
    Toast.makeText(this, menuItem.getTitle(), Toast.LENGTH_SHORT).show();
    return false;
}

運行效果如下:



 

通過點擊 菜單,可以發現能夠觸發 onMenuItemClick() 方法,但是,點擊上級按鈕 (upbutton)並沒有觸發該事件,因爲它有自己獨立的點擊事件。

 toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "HOME", Toast.LENGTH_SHORT).show();
    }
 });

 

源碼下載


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章