ActionBar
2016-11-22 00:59:53 0 举报
AI智能生成
ActionBar是Android应用程序顶部的一个导航栏,它提供了用户界面和应用程序操作的快捷方式。它通常包含返回按钮、主页按钮和其他应用程序特定的操作按钮。ActionBar可以自定义,以显示应用程序的图标、标题和菜单项。它可以在不同的屏幕方向上自动调整其布局,并支持可滚动的操作列表。在Android Lollipop(5.0)及更高版本中,ActionBar已被替换为AppBarLayout和Toolbar,但旧版本的应用程序仍可以使用ActionBar。总之,ActionBar是一个方便且灵活的用户界面元素,可以帮助用户快速访问应用程序的功能和操作。
作者其他创作
大纲/内容
1.ActionBar的添加
只需要在AndroidManifest.xml中指定Application或Activity的Theme是Theme.Holo或其子类就可以了
使用Eclipse创建的项目自动就会将Thmee设置成Theme.Holo,所以Actionbar是默认显示出来的
2.ActionBar的移除
1.将Theme指定成Theme.Holo.NoActionBar
2.在activity中
getActionBar().hide()
3.修改ActionBar的图标和标题
1,图标
1.在清单文件的<application>或者<activity>节点下的icon属性指定的图片来作为ActionBar的图标
2.使用自定义图标,在节点下logo属性中添加图片的来源
2.标题内容
修改label属性
4.在ActionBar中添加按钮
在Activity启动的时候,系统会调用Activity的OnCreateOptionMenu
方法来却出所有的Action按钮,我们只要在这个方法中加载一个menu
资源,并把所有的Action按钮都定义在资源文件里面就可以了
menu文件资源的一些标签
<item>标签中又有一些属性,其中id是该Action按钮的唯一标识符,
icon用于指定该按钮的图标,
title用于指定该按钮可能显示的文字(在图标能显示的情况下,通常不会显示文字),
showAsAction则指定了该按钮显示的位置,主要有以下几种值可选:
1.always表示永远显示在ActionBar中,如果屏幕空间不够则无法显示,
2.ifRoom表示屏幕空间够的情况下显示在ActionBar中,不够的话就显示在overflow中,
3.never则表示永远显示在overflow中。(overflow就是省略号)
使用
MenuInflater的inflate()方法来加载menu资源就可以了
注意
ActionBar中由于屏幕空间有限,默认是不会显示title内容的。但是出于以下几种因素考虑,
即使title中的内容无法显示出来,我们也应该给每个item中都指定一个title属性:
1.当ActionBar中的剩余空间不足的时候,如果Action按钮指定的showAsAction属性是ifRoom
的话,该Action按钮就会出现在overflow当中,此时就只有title能够显示了。
2.如果Action按钮在ActionBar中显示,用户可能通过长按该Action按钮的方式来查看到title的内容。
点击事件的实现
当用户点击Action按钮的时候,系统会调用Activity的
onOptionsItemSelected()方法,通过方法传入的MenuItem
参数,我们可以调用它的getItemId()方法和menu资源中的
id进行比较,从而辨别出用户点击的是哪一个Action按钮.
例如
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_compose:
Toast.makeText(this, "Compose", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_delete:
Toast.makeText(this, "Delete", Toast.LENGTH_SHORT).show();
return true;
case R.id.action_settings:
Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
0 条评论
下一页