关于Toolbar的一些认识

关于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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值