关于Toolbar的一些认识

来源:互联网 发布:域名怎么绑定 编辑:程序博客网 时间:2024/05/07 04:40
关于android.support.v7.widget.Toolbar的一些认识

1,toolbar也叫appbar作用 用来代替actionbar
首先 style主题中必须影藏actionbar
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>

         toolbar = (Toolbar)findViewById(R.id.toolbar);         toolbar.setTitle("我从草原来");//        toolbar.setSubtitle("未来为我盛开");        toolbar.setBackgroundColor(Color.parseColor("#ff0000"));        toolbar.setLogo(R.drawable.ab);        setSupportActionBar(toolbar);//此方法只有AppCompatActivity才有         toolbar.setNavigationIcon(R.drawable.ab_android);//        这边要留意的是setNavigationIcon需要放在 setSupportActionBar之后才会生效。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:background="?attr/colorPrimary"
    android:layout_height="?android:attr/actionBarSize"  />

<!--?attr/ 这种样式代表允许你使用当前theme中任意的attribute-->


大抵来说,预设常用的几个元素就如图中所示,接着就依序来说明之:

  1. setNavigationIcon
    即设定 up button 的图标,因为 Material 的介面,在 Toolbar这里的 up button样式也就有別于过去的 ActionBar 哦。

  1. setLogo
    APP 的图标。

  2. setTitle
    主标题。

  3. setSubtitle
    副标题。

  4. setOnMenuItemClickListener
    设定菜单各按鈕的动作。

菜单部分,需要先在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_edit"        android:title="@string/action_edit"        android:orderInCategory="80"        android:icon="@drawable/ab_edit"        app:showAsAction="ifRoom" />   
<item android:id="@+id/action_share"        android:title="@string/action_edit"        android:orderInCategory="90"        android:icon="@drawable/ab_share"        app:showAsAction="ifRoom" />   <item android:id="@+id/action_settings"        android:title="@string/action_settings"        android:orderInCategory="100"        app:showAsAction="never"/></menu>

再回到MainActivity.java 中加入OnMenuItemClickListener 的监听者:

private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() {
  @Override
  public boolean onMenuItemClick(MenuItem menuItem) {
    String msg = "";
    switch (menuItem.getItemId()) {
      case R.id.action_edit:
        msg += "Click edit";
        break;
      case R.id.action_share:
        msg += "Click share";
        break;
      case R.id.action_settings:
        msg += "Click setting";
        break;
    }
 
    if(!msg.equals("")) {
      Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
    }
    return true;
  }
};

将onMenuItemClick监听者设置给toolbar
  1. // Menu item click 的監聽事件一樣要設定在 setSupportActionBar 之后才有作用
  2. toolbar.setOnMenuItemClickListener(onMenuItemClick);

和 setNavigationIcon 一样,需要將之设定在 setSupportActionBar 之后才有作用。执行上面的代码便会得到下面的界面。

1 0
原创粉丝点击