zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    mysql下this is incompatible with sql_mode=only_full_group_by解决方案
    docker 摆渡镜像脚本
    You must reset your password using ALTER USER statement before executing this statement
    docker 镜像自动升级脚本
    Docker容器的重启策略及docker run的--restart选项详解
    xj监控端口,模拟登陆脚本
    docker registry 镜像删除
    CentOS7下Supervisor安装与配置
    修改Docker默认镜像和容器的存储位置
    Kubernetes创建挂载共享存储的容器
  • 原文地址:https://www.cnblogs.com/android-blogs/p/4975118.html
Copyright © 2011-2022 走看看