【发布时间】:2019-05-06 03:22:47
【问题描述】:
我正在开发一个使用标准 ActionBar 的 Android 应用程序。
在某个屏幕上,我有一个有条件需要的过滤器图标,
取决于正在显示的数据的特征,例如一些数据是可过滤的
其他人没有。
我在操作栏上找不到任何看起来可能适合编程的方法
隐藏操作栏操作图标。
如何启用/禁用操作栏操作图标?
或者
如何隐藏/取消隐藏操作栏操作图标?
【问题讨论】:
我正在开发一个使用标准 ActionBar 的 Android 应用程序。
在某个屏幕上,我有一个有条件需要的过滤器图标,
取决于正在显示的数据的特征,例如一些数据是可过滤的
其他人没有。
我在操作栏上找不到任何看起来可能适合编程的方法
隐藏操作栏操作图标。
如何启用/禁用操作栏操作图标?
或者
如何隐藏/取消隐藏操作栏操作图标?
【问题讨论】:
看看这个,它展示了如何在运行时更改菜单项。
http://developer.android.com/guide/topics/ui/menus.html#ChangingTheMenu
例如,您可以在 onCreateOpionsMenu() 中将菜单保存为 Activity 的成员变量,然后执行以下操作:
MenuItem item = mMenu.findItem(R.id.addAction);
item.doSomething()
当您想要更改特定菜单项上的某些内容时。
【讨论】:
您可以通过覆盖 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();
...
}
【讨论】:
据我了解,您需要删除显示在操作栏左上方的图标。
你可以用这行简单的代码做到这一点:
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
如果您想去掉应用名称,请尝试:
actionBar.setDisplayShowHomeEnabled(false);
希望这会有所帮助。
【讨论】:
你也可以试试这个:
final ActionBar actionBar= getActionBar();
actionBar.hide();
它将隐藏图标和标题。
不要忘记你的导入:
import android.app.ActionBar;
祝你好运
【讨论】: