Android v7包下Toolbar和ActionBarActivity实现后退导航效果
android.support.v7包下的ToolBar和ActionBarActivity,均自带后退导航按钮,只是要手动开启,让它显示出来。
先来看看ToolBar,页面前台代码:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
如果要让后退按钮显示出来,需要在后台添加如下的代码
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
当然添加这行代码后仅仅是出现一个后退的箭头而已,点击后并没反应,需要继续添加监听事件才行,默认添加的按钮id是固定的,android.R.id.home,在onOptionsItemSelected中再添加如下的监听事件
case android.R.id.home:
finish();
break;
其实这样并不是真正意义上的返回上一个页面,而是将这个页面销毁,从而显示上一个页面,也就是跳转之前的页面。
那么ActionBarActivity如何设置呢,看下面:
首先在要返回的页面A中设置该页面为要返回的页面
setHomeButtonEnabled
然后在清单文件中设置页面B的parentActivityName为页面A即可,但是这个属性在API 16之后才可,之前的话要用meta-data才可
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"></meta-data>
要在页面B中显示后退按钮,也要添加代码
ActionBar actionBar=getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
这样在页面B的标题栏左上角就公显示一个后退箭头,点击后就会自动返回页面A,并不需要添加额外的监听事件。
总结:看起来ActionBarActivity自带的后退导航要比ToolBar的更方便,但是到目前为止,google已不建议使用ActionBarActivity,现在在AS中新建Activity继承的是AppCompatActivity,至于为什么我这个初学者并不知道,我也尝试实现ToolBar的自动后退效果,但是虽然ToolBar也有对应的setHomeButtonEnabled方法和setDisplayHomeAsUpEnabled,但是并不起作用,google后找到的都是说的要添加监听事件,并没有发现有说可以实现类似ActionBarActivity的效果,最后放弃。
Android v7包下Toolbar和ActionBarActivity实现后退导航效果的更多相关文章
- 关于Andorid的RecyclerView在V7包下找不到的解决办法
关于Andorid的RecyclerView在V7包下找不到的解决办法 最近在学习使用RecyclerView替换现有的ListView,看了几篇文章.当准备自己动手实现的时候发现,V7包下找不到 ...
- android v7包的关联
最近在使用到侧滑栏的时候,使用到了v7包下的actionbar,结果折腾了好久才折腾好,其实很简单的,操作步骤如下: 1. 在eclipse中导入v7包的工程 2. 在自己的工程中打开properti ...
- Android Apk包下查看 sha1
用keytool工具查看sha1,格式如下:keytool -printcert -file Urovo.RSA文件路径(APK解压后在Meta-INF文件夹下)
- Android中使用ImageViewSwitcher实现图片切换轮播导航效果
前面写过了使用ViewFlipper和ViewPager实现屏幕中视图切换的效果(ViewPager未实现轮播)附链接: Android中使用ViewFlipper实现屏幕切换 Android中使用V ...
- 【Android - V】之Toolbar的使用
Toolbar是Android V7包中的一个控件,用来代替Action Bar作为界面的头部标题栏布局.Toolbar相对于Action Bar的特点是更加灵活,可以显示在任何位置. 首先先来看To ...
- 通过android.provider包查看android系统定义的provider.
原先的2.2的android源码已经不是那么容易找到了,我稍稍搜索了下找到了一两个没速度的死链就失去了兴趣.不过还好忽然发现在android.provider包下包含了常见的provider的使用方法 ...
- Android Support V7 包中 ActionBar的使用
以下示例为API<11,因为API>=11时本来就有ActionBar可以使用,所以不猜讨论范围之内 今天Google发布了最新的API 18,包括众多新的性能,正好最近在研究Action ...
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走. 如何选择兼容包, 请参考Android Support Library Features(二) 一.下载Support ...
- android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理
前三篇文章 android v7兼容包RecyclerView的使用(三)--布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包Recycle ...
随机推荐
- 前端html的简单认识
一.html 超文本标记语言 hypertext markup language 二.html的结构 三.html标签格式 1.标签由<>把关键字括起来 2.标签通常是成对出现的 , eg ...
- 2019.01.01 bzoj3625:小朋友和二叉树(生成函数+多项式求逆+多项式开方)
传送门 codeforces传送门codeforces传送门codeforces传送门 生成函数好题. 卡场差评至今未过 题意简述:nnn个点的二叉树,每个点的权值KaTeX parse error: ...
- vi三种模式的切换
基础上vi/vim共分为三种模式,分别是命令模式,输入模式和底线命令模式. 一.命令模式 用户刚刚启动vi/vim,便进入了命令模式. 在此状态下敲击键盘动作会被vim识别为命令,而非输入字符.比如我 ...
- react组件父传子
react组件父传子,子组件使用父组件的数据,用props import React, { Component } from 'react'; class App extends Component ...
- SpringBoot中用Fastjson替换默认的Jackson
一:前言 经过测试,Jackson有很多不合人意的地方,因此建议用Fastjson来替换: 二:Jackson的坑 先定义实体类: @Data @AllArgsConstructor @NoArgsC ...
- AngularJS的select设置默认值
AngularJS的select设置默认值 在使用Angular时候使用select标签时会遇到绑定数据指定默认显示值可这样实现 <!DOCTYPE html> <html ng-a ...
- 阿里云存储oss+怎么上传找文件夹
最近公司做工程项目,实现文件夹云存储上传. 网上找了很久,发现网上很多项目都存在相似问题,最后终于找到了一个符合我要求的项目. 工程如下: 这里对项目的文件夹云存储上传进行分析,实现文件夹上传,如何进 ...
- Python 安装requests和MySQLdb
Python 安装requests和MySQLdb 2017年10月02日 0.系统版本 0.1 查看系统版本 [root@localhost ~]# uname -a Linux localhost ...
- 笔记:认识 head 标签 待 更新中……
文档的头部描述了文档的各种属性和信息,包括文档的标题等.绝大多数文档头部包含的数据都不会真正作为内容显示给读者. 下面这些标签可用在 head 部分: <head> <title&g ...
- mui学习
改变状态栏的颜色 <meta name="apple-mobile-web-app-capable" content="yes"> <me ...