博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使ActionBar(Toolbar)的Up导航和实体按键Back实现同步
阅读量:7250 次
发布时间:2019-06-29

本文共 1921 字,大约阅读时间需要 6 分钟。

hot3.png

#前言

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

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

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

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

setSupportActionBar(toolbar);//这里提示可能会报出异常具体见下图getSupportActionBar().setHomeButtonEnabled(true);//设置toolbar后调用setDisplayHomeAsUpEnabledgetSupportActionBar().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>

...
...

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

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

#参考资料

转载于:https://my.oschina.net/u/2293736/blog/670276

你可能感兴趣的文章
数据库巡检项
查看>>
通过阿里云APP,可以进行ECS,RDS 等实例的管理
查看>>
HBase-Region太多的问题简单总结
查看>>
说说我为什么看好Spring Cloud Alibaba
查看>>
STM32学习笔记(五)——通用定时器计数延时
查看>>
Android selector shape 无效问题
查看>>
Data Lake Analytics: 使用DataWorks来调度DLA任务
查看>>
zabbix配置web监控实现网页监控
查看>>
Postgresql lock锁等待检查
查看>>
codeforces1141D题解(暴力+贪心)
查看>>
Java Spring Boot 2.0实战MyBatis连接池阿里Druid与SQL性能监控
查看>>
信用算力基于 RocketMQ 实现金融级数据服务的实践
查看>>
基于oauth 2.0 实现第三方开放平台
查看>>
kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(1):概要
查看>>
百万下载量的 Android 应用后台收集用户信息
查看>>
SQL Server 多表数据增量获取和发布 1
查看>>
C3P0连接池
查看>>
这 25 个开源机器学习项目,一般人我不告诉 Ta
查看>>
【WePY小程序框架实战四】-使用async&await异步请求数据
查看>>
iOS UIImageView(图片)
查看>>