• Android开发之Android Material Design Toolbar自定义随笔


    一、自定义Toolbar的menu:

    在menu下新建menu.xml文件,自定义menu的样式:

     1 <menu xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:app="http://schemas.android.com/apk/res-auto"
     3     xmlns:tools="http://schemas.android.com/tools"
     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.xml文件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <android.support.v7.widget.Toolbar
     3     xmlns:android="http://schemas.android.com/apk/res/android"
     4     xmlns:app="http://schemas.android.com/apk/res-auto"
     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声明:

    @Override
    public 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;
    }

    事件监听:

    @Override
    public 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

     

  • 相关阅读:
    开更
    PKUSC2016
    Educational Codeforces Round 12 E Beautiful Subarrays
    省选过了,又开始更新了。。。
    我来试试视频功能
    [BZOJ4407]于神之怒加强版
    bzoj3998: [TJOI2015]弦论
    bzoj4569: [Scoi2016]萌萌哒
    2016-5-30模拟测试
    2016-5-26模拟测试
  • 原文地址:https://www.cnblogs.com/LT5505/p/4974237.html
Copyright © 2020-2023  润新知