我的设备在android:4.1.2上运行,并且有物理硬件菜单按钮。
我在菜单中添加了5个项目,当我设置ShowAsAction =“never”时,按下物理硬件菜单按钮时会显示选项菜单。对于具有物理硬件菜单按钮的设备,是否有任何方法可以在带有溢出菜单的操作栏上显示它们(我的意思是对于没有物理硬件菜单按钮的设备可以看到三个点)
答案 0 :(得分:0)
根据Commonsware描述here
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
}
catch (Exception e) {
// presumably, not relevant
}
在Android 4.4+上不应该这样做,虽然有了异常处理程序,如果你运行它,我不会指望任何特殊问题,并且总有一天它们会完全摆脱sHasPermanentMenuKey
。
就我个人而言,我仍然不会改变Android 4.3及以下版本的内容,因为我怀疑这是一个非常糟糕的情况,在这种情况下,您将更换关于没有菜单的抱怨,抱怨有相同菜单的重复版本。话虽如此,由于这是现在正式认可的行为,我对开发人员的目标是在旧设备上保持一致性没有问题。
向the commenter on the issue I filed提出有关此事的小费,指出了这一变化。