
在 XML 中指定 *** 作
所有的 *** 作按钮和 action overflow 中其他可用的条目都被定义在 menu资源 的 XML 文件中。通过在项目的res/menu目录中新增一个 XML 文件来为 action bar 添加 *** 作。
为想要添加到 action bar 中的每个条目添加一个 <item> 元素。例如:
res/menu/main_activity_actions.xml
如果为了兼容 Android 2.1 的版本使用了 Support 库,在android命名空间下showAsAction属性是不可用的。
Support 库会提供替代它的属性,我们必须声明自己的 XML 命名空间,并且使用该命名空间作为属性前缀。(一个自定义 XML 命名空间需要以我们的 app 名称为基础,但是可以取任何想要的名称,它的作用域仅仅在我们声明的文件之内。)例如:res/menu/main_activity_actions.xml
为 Action Bar 添加 *** 作
在 activity 中实现 onCreateOptionsMenu() 回调方法来inflate菜单资源从而获取 Menu 对象。例如:
为 *** 作按钮添加响应事件
调用 activity 中 onOptionsItemSelected() 。在该方法的实现里面调用 MenuItem 的 getItemId() 来判断哪个条目被按下 - 返回的 ID。例如:
为下级 Activity 添加向上按钮
当运行在 Android 4.1(API level 16) 或更高版本,或者使用 Support 库中的 ActionBarActivity 时,实现向上导航需要在 manifest 文件中声明父 activity ,同时在 action bar 中设置向上按钮可用。
如何在 manifest 中声明一个 activity 的父类,例如:
然后,通过调用 setDisplayHomeAsUpEnabled() 来把 app icon 设置成可用的向上按钮:
由于系统已经知道MainActivity是DisplayMessageActivity的父 activity,当用户按下向上按钮时,系统会导航到恰当的父 activity - 你不需要去处理向上按钮的事件。
源地址:http://wiki.jikexueyuan.com/project/android-training-geek/adding-buttons.html
点击事件里面执行finish消除这一个activity,上一个activity自然就出来了,另外一个傻办法,A跳到B的时候传一个自己的action,B返回的时候直接跳转到这个action就好了.
Toolbar是Android 5.0中引入的一个新控件。好比是ActionBar升级版,但是相比ActionBar,Toolbar变得更加自由,可以放到任何位置。
由于我们平常开发app要兼容5.0以下的手机,所以使用Toolbar必须引用appcompat-v7兼容包,Android studio新建的工程默认是引用了appcompat-v7。
使用Toolbar替代ActionBar,使用的主题必须是没有ActionBar的,否则会造成冲突。因此修改style.xml中主题样式,继承Theme.AppCompat.NoActionBar
这种情况一般发生在你想利用ActionBar现有的一些功能(比如能够显示菜单中的 *** 作项,响应菜单点击事件,使用ActionBarDrawerToggle等),但是又想获得比actionbar更多的控制权限。
那么当前Activity需要继承AppCompatActivity,调用setSupportActionBar方法传入Toolbar的实例对象。
这种情况当前Activity可以不继承AppCompatActivity。
以上步骤完成后,Toolbar就添加到了页面中。
Toolbar在ActionBar原有的设计基础上又将标题栏分为了多个区域,如下从Google找到的一张示例图所示:
大抵来说,配置常用的几个元素就如图中所示:
设置导航按钮,比如作为返回按钮。
在Toolbar当作ActionBar来使用的情况下:
注意setNavigationIcon需要放在 setSupportActionBar之后才会生效。
可以使用ActionBar原有方法来添加一个系统的返回按钮。
可以通过setNavigationOnClickListener设置其点击事件。
设置图标(图中写错了,应该是setLogo)
设置主标题。
在Toolbar当作ActionBar来使用的情况下:
setDisplayShowTitleEnabled需要设置为false,setTitle才能有效。
设置副标题
设置菜单的点击事件,如果Toolbar当作ActionBar来使用的话,还可以直接在onOptionsItemSelected(MenuItem item)中设置。
关于Toolbar的初步使用就这么多,在Toolbar当作ActionBar使用的情况下,能用ActionBar原有方法实现的功能尽量用其方法实现,不能实现的再考虑使用Toolbar的方法,举个例子,像菜单构建设置监听什么的,直接使用Activity提供的方法就好了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)