gpt4 book ai didi

android - 如何在带有菜单按钮的设备上强制使用溢出菜单

转载 作者:IT老高 更新时间:2023-10-28 12:55:44 25 4
gpt4 key购买 nike

我想让所有不适合操作栏的菜单项进入溢出菜单(从操作栏而不是菜单按钮到达的菜单项)即使在设备上 < strong>确实有一个菜单按钮。对于用户来说,这似乎比将它们放入单独的菜单列表更直观,因为 ActionBar 的布局无法将它们放在栏上,因此需要用户从触摸(屏幕)交互跳转到基于按钮的交互。

在模拟器上,我可以将“Hardware Back/Home Keys”值设置为“no”并获得此效果。我已经在代码中搜索了一种方法来为具有菜单按钮但不能很好的实际设备执行此操作。谁能帮帮我?

最佳答案

你也可以在这里使用这个小技巧:

try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception ignored) {
}

放置它的好地方是应用程序类的 onCreate-Method。

它将强制应用显示溢出菜单。菜单按钮仍然有效,但会在右上角打开菜单。

[编辑] 因为它现在已经出现了好几次:这个 hack 只适用于 Android 3.0 中引入的原生 ActionBar,而不适用于 ActionBarSherlock。后者使用自己的内部逻辑来决定是否显示溢出菜单。如果您使用 ABS,则所有小于 4.0 的平台都由 ABS 处理,因此受制于其逻辑。该 hack 仍然适用于所有搭载 Android 4.0 或更高版本的设备(您可以放心地忽略 Android 3.x,因为实际上没有任何带有菜单按钮的平板电脑)。

有一个特殊的 ForceOverflow-Theme 会强制 ABS 中的菜单,但显然是 going to be removed in future versions due to complications .

关于android - 如何在带有菜单按钮的设备上强制使用溢出菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9286822/

25 4 0