添加action bar 按钮

添加action bar 按钮,第1张

Action bar 允许添加按钮。可以添加 icon 和/或文本被称作 action buttons( *** 作按钮) 。安排不下的或不足够重要的 *** 作被隐藏在 action overflow (超出空间的action)中。

在 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

actionbar添加输入框方法如下:

1、自定义一个资源文件夹menu,在里面写一些菜单选项。

2、解析菜单布局文件。

3、进入一个Activity页面后退出的实现方法即可添加输入框。

在以前版本的 Gmail 应用中,ActionBar 上有个刷新菜单,点击一下刷新菜单变成一个转圈的刷新标示动画图片。 之前实现该功能的时候都是使用一个类库 RefreshActionItem 来实现的。RefreshActionItem 还支持一些扩展功能,功能比较丰富。

今天无意中又发现一个简单的实现方式。如果您只需要一个刷新的效果,则可以考虑这种方法, 实现方式如下:

1. 首先定义一个 Menu xml 文件:

2. 然后创建一个代表刷新进度的自定义 ProgressBar 布局文件

注意,为了显示美观,上面的 宽度和高度 不同的版本和屏幕可能需要设置不一样的值,可以在不同的 dimens.xml 中设置。

3. 在 Activity 代码中,获取到该 MenuItem 并根据刷新情况来设置 ActionView:

这里为了兼容 AppCompat (android 3.0 之前的版本)用了 MenuItemCompat 来设置 ActionView。

现在,根据您的刷新逻辑,只需要调用 setRefreshActionButtonState 函数就可以启用刷新动画了。

这种方式,值得一提的是, 如果你设置了 ActionView,则就是一个自定义 ActionItem,如果在 ActionView 中你不处理 OnClick 事件,则用户点击该菜单是没响应的,这种行为刚好是应用需要的行为。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11374664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存