我有一个全屏运行并依赖于菜单按钮的应用程序。我没有意识到像 Galaxy Tab 这样的设备使用了一个不再有菜单按钮的操作栏。当我触摸菜单按钮时,我的应用程序当前会加载一个显示设置菜单的片段:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
FragmentManager lFM = getSupportFragmentManager();
SettingsDialogFragment lSettingsDialog = new SettingsDialogFragment();
lSettingsDialog.show(lFM, "Settings");
return false;
}
我知道可以向操作栏添加自定义图标,按下该图标可能会导致与菜单按钮相同的行为。我不确定的是如何实现这一点。
我如何知道设备没有菜单按钮,而我需要在操作栏中添加图标?它不可能像检查 SDK 版本那样简单,因为动作栏显然是在蜂窝中引入的,但是我的 Galaxy Note 运行冰淇淋三明治并且没有动作栏(它仍然有一个菜单按钮)。我不想放弃任何不动产,因此在我的主布局中添加按钮或菜单选项不是一种选择。
我刚刚在谷歌开发者上读到:
导航栏 Android 4.0 中的新手机,导航栏仅出现在没有传统硬件键的设备上。它包含设备导航控件“返回”、“主页”和“最近”,还显示为 Android 2.3 或更早版本编写的应用程序的菜单。
所以我尝试将我的应用程序的目标版本设置为 8。而不是菜单,我得到一个按钮,允许我更改应用程序的屏幕大小 - 但没有菜单按钮。