文档章节

使ActionBar(Toolbar)的Up导航和实体按键Back实现同步

Mobile-DEV彬
 Mobile-DEV彬
发布于 2016/05/05 16:25
字数 733
阅读 106
收藏 2

#前言

android的toolbar的返回键有必要存在吗? google自家应用也保留了toolbar的返回键。 觉得和下方的实体返回键重了。

不管什么原因大众的使用习惯就是这样, 所以呢在开发过程中就会有了toolbar的返回和实体返回键都要实现的问题 而且要基本功能相同,这就有了功能同步的问题。

  • 官方中把Toolbar中的那个返回键不叫做返回键 ,而叫做Up功能是返回该app的逻辑层级的上一层,即parentActivity。 详细见Navigation with Back and Up

  • 返回back stack的上一个activity。 #实现 要想ActionBar或者Toolbar显示出home来需要调用如下代码

setSupportActionBar(toolbar);
//这里提示可能会报出异常具体见下图
getSupportActionBar().setHomeButtonEnabled(true);
//设置toolbar后调用setDisplayHomeAsUpEnabled
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

异常提示

  • setHomeButtonEnabled这个小于4.0版本的默认值为true的。但是在4.0及其以上是false, 该方法的作用:决定左上角的图标是否可以点击。没有向左的小图标。 true 图标可以点击 false 不可以点击。
  • setDisplayHomeAsUpEnabled(true) 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP
  • setDisplayShowHomeEnabled(true)
    使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,否则,显示应用程序图标,对应id为android.R.id.home,对应ActionBar.DISPLAY_SHOW_HOME
  • setDisplayShowCustomEnabled(true) 使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用,对应ActionBar.DISPLAY_SHOW_CUSTOM
  • setDisplayShowTitleEnabled(true)
    对应ActionBar.DISPLAY_SHOW_TITLE

其中setHomeButtonEnabledsetDisplayShowHomeEnabled共同起作用,如果setHomeButtonEnabled设成false,即使setDisplayShowHomeEnabled设成true,图标也不能点击

接着配置AndroidManifest.xml 在Android 4.1上,只需要声明该activity的parentActivity即可。 在Android 4.0及之前的版本上,需要include Support Library,然后添加相应的<meta-data>

<application ... >  
    ...  
    <!-- The main/home activity (it has no parent activity) -->  
    <activity  
        android:name="com.example.MainActivity" ...>  
        ...  
    </activity>  
    <!-- A child of the main activity -->  
    <activity  
        android:name="com.example.ActivityB"  
        android:parentActivityName="com.example.MainActivity" >  
        <!-- Parent activity meta-data to support 4.0 and lower -->  
        <meta-data  
            android:name="android.support.PARENT_ACTIVITY"  
            android:value="com.example.MainActivity" />  
    </activity>  
</application>  

接下来在代码中直接使用如下的的方法就可以了

  • ActionBar的Up 这段在配置文件中配置了可以不用
	@Override  
	public boolean onOptionsItemSelected(MenuItem item) {  
		switch (item.getItemId()) {  
			// Respond to the action bar's Up/Home button  
			case android.R.id.home:  
			NavUtils.navigateUpFromSameTask(this);  
			return true;  
		}  
		return super.onOptionsItemSelected(item);  
	} 
  • 返回键调用的
    @Override
    public void onBackPressed() {
        NavUtils.navigateUpFromSameTask(this);
        super.onBackPressed();
    }

#参考资料

© 著作权归作者所有

Mobile-DEV彬
粉丝 0
博文 15
码字总数 6603
作品 0
丰台
私信 提问
【Android】Toolbar

Toolbar 简述 Toolbar 在v7.21+包中,是一个用来替代ActionBar的组件,可以说是ActionBar的升级版本。Toolbar与ActionBar比较有几个特点: ActionBar属于Window的装饰组件,一个activity中只...

xesam
2014/12/16
5.2K
0
Android Toolbar Example 示例

每个活动最顶部的那个标题栏就是 ActionBar,不过 ActionBar 由于其设计的原因,被限定只能位于活动的顶部,从而不能实现一些 Material Design 的效果,因此官方现在已经不再建议使用 Action...

xandeer
2017/10/11
0
0
Android 之 Material Design(三)—DrawerLayout+NavigationView+Toolbar(点击icon打开关闭侧滑菜单)

前言 关于Material Design相关的控件,前两篇文章已经介绍了一些常用的控件了,这篇文章主要介绍一下DrawerLayout+NavigationView+Toolbar。这样Material Design的也介绍的差不多了,剩下Rec...

AFinalDream
2017/06/22
0
0
Android 5.x新增控件之-Toolbar控件

1.引用Toolbar dependencies { 2.Toolbar简介 Toolbar的出现解决了Actionbar的各种限制 Toolbar是应用的内容的标准工具栏,可以说是Actionbar的升级版,两者不是独立关系,要使用Toolbar还是...

jdfkldjlkjdl
2017/11/21
0
0
利用 v7 Toolbar 自定义 Android ActionBar

要使用 Toolbar,首先要在 layout 里面添加组件,例如在 activity_main.xml 里添加 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layoutheight="wrapcontent" an......

tonglei0429
2016/01/08
372
0

没有更多内容

加载失败,请刷新页面

加载更多

作为一个(IT)程序员!聊天没有话题?试试这十二种技巧

首先呢?我是一名程序员,经常性和同事没话题。 因为每天都会有自己的任务要做,程序员对于其他行业来说;是相对来说比较忙的。你会经常看到程序员在发呆、调试密密麻麻代码、红色报错发呆;...

小英子wep
今天
17
0
【SpringBoot】产生背景及简介

一、SpringBoot介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要...

zw965
今天
5
0
简述并发编程分为三个核心问题:分工、同步、互斥。

总的来说,并发编程可以总结为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共...

dust8080
今天
6
0
OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
3.5K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部