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

时间:2013-08-09 13:44:45

标签: android android-actionbar

我正在开发一个采用标准ActionBar的Android应用程序 在某个屏幕上,我有一个有条件要求的过滤器图标,
取决于所显示数据的特征,例如,一些数据是可过滤的 别人没有。
我在动作栏上找不到任何看起来很可能成为programmaticaly候选人的方法 隐藏动作栏动作图标。 如何启用/禁用操作栏操作图标?

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

5 个答案:

答案 0 :(得分:12)

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

  

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

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

MenuItem item = mMenu.findItem(R.id.addAction);
item.doSomething()

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

答案 1 :(得分:2)

据我了解,您需要删除左上角操作栏上显示的图标。

你可以用这一简单的代码行完成:

final ActionBar actionBar = getActionBar();     
actionBar.setDisplayShowTitleEnabled(false);

如果您想摆脱应用名称,请尝试:

actionBar.setDisplayShowHomeEnabled(false);

希望这有帮助。

答案 2 :(得分:2)

您可以通过覆盖onPrepareOptionsMenu()方法来实现。 这是一个小例子

@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()。像这样

void yourMethod () {
...
invalidateOptionsMenu();
...
}

答案 3 :(得分:0)

你也可以试试这个:

final ActionBar actionBar= getActionBar();
actionBar.hide();

它会隐藏图标和标题。

不要忘记你的导入:

import android.app.ActionBar;

祝你好运

答案 4 :(得分:0)

尝试 ActionBar.getActionBar.hide();