你的位置:首页 > 操作系统

[操作系统]Android开发之Android Material Design Toolbar自定义随笔


一、自定义Toolbar的menu:

在menu下新建menu.

 1 <menu  2    3    4   tools:context=".MainActivity"> 5   <item 6     android:id="@+id/action_search" 7     android:orderInCategory="80" 8     android:title="action_search" 9     app:showAsAction="ifRoom"10     android:icon="@drawable/search_ic_selector"/>11 </menu>

二、自定义Toolbar,Toolbar一般是共用:

新建common_toolbar.

 1 <? 2 <android.support.v7.widget.Toolbar 3    4    5   android:id="@+id/common_toolbar_top" 6   android:layout_width="match_parent" 7   android:layout_height="wrap_content" 8   android:background="@color/colorPrimary" 9   android:minHeight="?attr/actionBarSize"10   app:popupTheme="@style/ThemeOverlay.AppCompat.Light"11   app:navigationIcon="?attr/homeAsUpIndicator"12   app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"13  >14 </android.support.v7.widget.Toolbar>

注:其中app:navigationIcon="?attr/homeAsUpIndicator"用于设置返回图标

三、在布局文件中引入自定义的Toolbar:

<include  layout="@layout/common_toolbar"></include>

四、activity中声明Toolbar以及对menu的事件监听:

注:Activity必须继承AppCompatActivity

1、声明Toolbar:

1 Toolbar toolbar = (Toolbar) findViewById(R.id.common_toolbar_top);2 setSupportActionBar(toolbar);

2、Toolbar设置标题等:

setTitle(R.string.fragment_for_why_title);

3、对menu进行声明和事件监听:

menu声明:

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.main, menu);  return true;}

事件监听:

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {  int id = item.getItemId();  //noinspection SimplifiableIfStatement  if (id == R.id.action_search) {       return true;  }  return super.onOptionsItemSelected(item);}

五、最终效果图:

Toolbar自定义                      Toolbar自定义

Demo下载地址:http://shouji.baidu.com/software/item?docid=8118536&from=as