0

我有一个全屏运行并依赖于菜单按钮的应用程序。我没有意识到像 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。而不是菜单,我得到一个按钮,允许我更改应用程序的屏幕大小 - 但没有菜单按钮。

4

1 回答 1

0

我有一个全屏运行并依赖于菜单按钮的应用程序。

这两年来一直是个坏主意。

我没有意识到像 Galaxy Tab 这样的设备使用了一个不再有菜单按钮的操作栏。

这种设备已经存在了两年

当我触摸菜单按钮时,我的应用程序当前加载了一个显示设置菜单的片段

这从来都不是一个合适的设计举措。请允许存在的 MENU 按钮正常运行,在 Android 1.x/2.x 上显示选项菜单并在 Android 3.0+ 上触发操作栏溢出。

我怎么知道设备没有菜单按钮

http://developer.android.com/reference/android/view/ViewConfiguration.html#hasPermanentMenuKey()

于 2013-01-28T13:09:34.113 回答