Actionbar(导航栏?)vs menubutton

时间:2013-01-28 11:34:29

标签: android android-actionbar

我有一个全屏运行的应用程序,它依赖于菜单按钮。我没有意识到的是像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中的手机新功能,导航栏是   仅出现在没有传统硬件密钥的设备上。   它包含设备导航控件Back,Home和Recents,以及   还会显示为Android 2.3或更早版本编写的应用程序的菜单。

所以我尝试将我的应用程序的目标版本设置为8.而不是菜单我得到一个按钮,允许我更改我的应用程序的屏幕大小 - 但没有菜单按钮。

1 个答案:

答案 0 :(得分:0)

  

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

对于两年来说这是一个坏主意。

  

我没有意识到Galaxy Tab等设备使用的动作栏不再有菜单按钮。

此类设备已经存在两年

  

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

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

  

我如何知道设备没有菜单按钮

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