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);
}

五、最终效果图:

                      

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

时间: 2024-08-06 23:57:17

Android开发之Android Material Design Toolbar自定义随笔的相关文章

android开发之-Android 开发之4.0界面设计原则-整理

设计原则: 一.让人着迷: 1.给人惊喜:使用漂亮的界面.精心的动画.适时的音乐. 2.真实的对象比按钮和菜单更有趣 这句话的意思是:使用描述描述性的图标作为快捷方式,界面美观 当然这个快捷方式是描述一个实体的,像一个人,不是扁平化的 3.个性化设计 提供个性化设计,提高亲切感和控制感.多设计几套个性化方案 4.记住人们的使用习惯,不要重复问 记住人们的使用习惯,不要重复问.多使用可以自动记住的控件,Autocomplete控件,不要每次询问操作 二.简单我的生活 1.使用简单词.短句子. 人们

android开发之android:process属性_application中onCreate执行多次

应用做的匆忙,很多地方只顾实现功能,没有兼顾好性能,所以停下来重构代码优化性能,结果在打log看启动时间的时候,发现 Application的onCreate执行了多次,这样导致重复初始化资源,初始化了3次导致接近1s时间. 发现这个是由独立进程引起的.即:process这个属性. android:process 服务所在进程的名字.通常,一个应用的所有组件都运行在系统为这个应用所创建的默认进程中.这个默认进程是用这个应用的包名来命名的. 标签的process属性可以设置成和所有组件都不同的默认

Android(Lollipop/5.0) Material Design(六) 自定义动画

官网地址:https://developer.android.com/intl/zh-tw/training/material/animations.html 动画在Material设计中,为用户与app交互反馈他们的动作行为和提供了视觉上的连贯性.Material主题为Buttons和Activity的过渡提供了一些默认的动画,在android5.0(api21)及以上,允许自定义这些动画: · Touch feedback  触摸反馈 · Circular Reveal  循环显示 · Ac

麦子学院android开发之Android应用开发视图优化步骤

1)View优化 i.   减少不必要的View以及View的嵌套层次. 比如实现一个listview中常用的layout,可以使用RelativeLayout减少嵌套,要知道每个View的对象会耗费1~2k内存,嵌套层次过多会引起频繁的gc,造成ANR. ii.   通过HierarchyViewer查看布局结构 利用HierarchyViewer来查看View的结构:~/tools/hierarchyviewer,能很清楚地看到RelativeLayout下面的扁平结构,这样能加快dom的渲

Android 开发之Android 应用程序如何调用支付宝接口

1.到支付宝官网,下载支付宝集成开发包 由于android设备一般用的都是无线支付,所以我们申请的就是支付宝无线快捷支付接口.下面是申请的地址以及下载接口开发包的网址:https://b.alipay.com/order/productDetail.htm?productId=2014110308141993(如果链接失效,你可以到支付宝官网商家服务模块中找到 快捷支付(无线)这个服务.)  下载集成开发包(http://download.alipay.com/public/api/base/W

Android开发之Android Context,上下文(Activity Context, Application Context)

转载:http://blog.csdn.net/lmj623565791/article/details/40481055 1.Context概念Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源.启动一个新的Activity.获取系统服务.获取内部文件(夹)路径.创建View操作时等都需要Context的参与,可见Context的常见性.大家可能会问到底什么是Context,Context字面意思上下文,或者

Android开发之Android Annotations框架

昨天研究了一下Volley网络通信框架的使用,今天有研究了一下Android Annotations框架,发现Android Annotations框架确实可以减少代码量. Android Annotations 是一个开源的框架,用于加速 Android 应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性. 功能模块: 1. 使用依赖注入(Dependency Injection) ----------------------------------------------

Android开发之 android:windowSoftInputMode属性详解

android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一]当有焦点产生时,软键盘是隐藏还是显示 [二]是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合.在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果.各个值之间用|分开.例如:<

Android开发之Android&#160;Context&#160;Menu

1 Creatinga上下文菜单, Todefine上下文菜单的外观和行为,推翻youractivity的上下文菜单回滚方法,onCreateContextMenu()和onContextItemSelected().  例如,这里有一个onCreateContextMenu(),使用context_menu.xml menuresource:  java代码:  1. @Override 2. public void onCreateContextMenu(ContextMenu menu,