安卓使用Toolbar替换ActionBar

效果图:
在这里插入图片描述

1、首先隐藏ActionBar(请耐心阅读)

2、在布局文件添加以下代码:

 <android.support.v7.widget.Toolbar
 		
       android:layout_width="match_parent"
       android:layout_height="?attr/actionBarSize"
       android:background="?attr/colorPrimary"
       android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
       <!--
       theme属性是为了让Toolbar单独使用深色主题,使用深色主题之后就出现了一个问题
       Toolbar中有菜单按钮那么弹出的菜单项也会是深色主题就会很丑,所以
       popupTheme属性将菜单项指定成为淡色主题			app:是为了兼容5.0一下版本
		-->

到这里就完了吗,并没有因为你还没有将Toolbar引入
**接下来修改activity代码:在onCreate()方法中绑定id调用setSupportActionBar()方法将实例传入
Toolbar toolbar = findViewId(R.id.(id));
setSupportActionBar(toolbar);
**
这里就大功告成把ActionBar替换成Toolbar了接下来给Toolbar添加一个menu菜单

3、为Toolbar添加一个menu菜单

首先在res目录下创建一个menu目录
然后在menu文件夹下创建一个toolbar.xml文件
代码如下:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
    	android:id="@+id/backup"
    	android:icon="@drawable/ic_back"
    	android:title="back"
    	app:showAsAction="always"/>
    <item
        android:id="@+id/delete"
        android:icon="@drawable/ic_delete"
        android:title="delete"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/settings"
        android:icon="@drawable/ic_settings"
        android:title="settings"
        app:showAsAction="never" />  
    </menu>

这里稍微解释一下几个属性
icon就不用说了就是要展示的图片
title就是展示的字体
showAsAction属性指定按钮的位置
主要讲一下showAsAction属性
主要有三这选择

showAsAction属性作用
always表示永远显示在toolbar中屏幕不够不显示
ifRoom表示toolbar空间足够就显示,否则显示在菜单中
never表示永远显示在菜单中

!!!注意:Toolbar中的action只会显示图片,而menu中的action只会显示文字

好了到这里准备工作也已经做完了接下来就把他加载这个文件

在Activity中重写onCreateOptionsMenu()方法加载文件

public boolean onCreateOptionsMenu(Menu menu){
	getMenuInflater().inflater(R.menu.toolbar,menu);
	return true;
}

处理菜单监听事件重写onOptionsItemSelectd(MenuItem item)
这就不贴代码了,就是重写然后通过item.getItemId();方法取得menu得id接下来你应该懂了
还有一个可能会用到直接贴代码了在onCreate()中写

	ActionBar actionbar = getSupportActionBar();	//获取到actionbar实例,虽然这actionbar是由toolbar体现出来的
	if(actionbar != null){
		actionbar.setDisplayHomeAsUpEnabled(true);		//让导航按钮显示出来
		actionbar.setHomeAsUpIndicator(这里是图片是资源文件);		//设置导航按钮图标,默认图标是一个返回箭头
	}	

接下来就是点击按件处理 它的id永远都是android.R.id.home在菜单监听事件里判断就好了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xpq_lrh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值