首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态启用/禁用隐藏/取消隐藏Android ActionBar操作图标

动态启用/禁用隐藏/取消隐藏Android ActionBar操作图标
EN

Stack Overflow用户
提问于 2013-08-09 13:44:44
回答 4查看 13.9K关注 0票数 9

我正在开发一个使用标准ActionBar的Android应用程序。

在某个屏幕上,我有一个有条件要求的过滤器图标,

取决于所显示的数据的特性,例如某些数据是可过滤的

其他人不是。

我在actionbar上找不到任何可能隐藏actionbar操作图标的方法。如何启用/禁用actionbar操作图标?

如何隐藏/取消隐藏actionbar操作图标?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-09 13:55:31

看看这个,它显示了如何在运行时更改菜单项。

http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu

例如,您可以将菜单保存为onCreateOpionsMenu()中活动的成员变量,然后执行如下操作:

代码语言:javascript
运行
复制
MenuItem item = mMenu.findItem(R.id.addAction);
item.doSomething()

当您想要更改特定菜单项上的某些内容时。

票数 12
EN

Stack Overflow用户

发布于 2015-03-31 15:32:46

您可以通过重写onPrepareOptionsMenu()方法来做到这一点。下面是一个小例子

代码语言:javascript
运行
复制
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if (count < 1)
        menu.getItem(4).setEnabled(false); //disable menuitem 5
    if (!after)
    menu.getItem(1).setVisible(false); // invisible menuitem 2
    invalidateOptionsMenu();
    return true;
}

但是,只有当您单击操作栏中的菜单按钮时,才会调用此方法。如果在操作栏上有任何图标(菜单按钮除外),单击该图标将不会触发OnPrepareOptionsMenu()方法。为了手动触发此方法,可以在方法中使用invalidateOptionsMenu()。像这样

代码语言:javascript
运行
复制
void yourMethod () {
...
invalidateOptionsMenu();
...
}
票数 3
EN

Stack Overflow用户

发布于 2013-08-09 13:55:50

正如我所理解的,您需要删除显示在左上角动作栏上的图标。

您可以使用以下简单的代码行来完成这一任务:

代码语言:javascript
运行
复制
final ActionBar actionBar = getActionBar();     
actionBar.setDisplayShowTitleEnabled(false);

如果您想去掉应用程序名,请尝试:

代码语言:javascript
运行
复制
actionBar.setDisplayShowHomeEnabled(false);

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18148122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档