• 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

     

     

  • 相关阅读:
    [转] linux中 参数命令 -- 和
    ECharts 报表事件联动系列一:刷新页面
    Echarts 简单报表系列三:饼状图
    Echarts 简单报表系列二:折线图
    Echarts 简单报表系列一:柱状图
    Golang 在 Mac、Linux、Windows 下如何交叉编译(转)
    Spring Boot 打war包并利用docBase指定根目录为打包的工程
    JdbcTemplate查询返回JavaBean的几种方法
    Spring JdbcTemplate 查询结果集Map反向生成Java实体(转)
    Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?(转)
  • 原文地址:https://www.cnblogs.com/android-blogs/p/4975118.html
Copyright © 2020-2023  润新知