android - ActionBarSherlock:使用菜单按钮打开子菜单

标签 android menu android-actionbar actionbarsherlock submenu

我正在使用 ActionBarSherlock-4.1.0-0,我想使用硬件菜单按钮在 Actionbar 中打开我的子菜单。我正在计划更新,在我的旧版本中,我使用了“正常”菜单。我想帮助用户适应新设计。

我得到了子菜单和主菜单:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater i = getSupportMenuInflater();
    i.inflate(R.menu.main_menu, menu);
    SubMenu subMenu = (SubMenu) menu.findItem(R.id.actionbar_submenu);
    Menu mainMenu = menu;
    return super.onCreateOptionsMenu(menu);
}

我得到了硬件菜单按钮的监听器:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode) {
        case KeyEvent.KEYCODE_MENU:
            // TODO: expand submenu from actionbar
            return true;

        }
    }
    return super.onKeyDown(keyCode, event);
}

我找不到要调用的方法或任何其他内容。

最佳答案

我用 android actionbar 尝试了 Frederik 的这个解决方案,我遇到了子菜单立即打开和关闭的问题。更改为 onKeyUp 解决了这个问题。

这是我的代码:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_MENU){
        if (event.getAction() == KeyEvent.ACTION_DOWN && optionsMenu != null && optionsMenu.findItem(R.id.sub_menu) != null)
        {
            Log.i(TAG, "performIdentifierAction");
            optionsMenu.performIdentifierAction(R.id.sub_menu, 0);
            return true;
        }
    }
    return super.onKeyUp(keyCode, event);
}

我会检查 optionsMenu != null && optionsMenu.findItem(R.id.sub_menu) != null 因为没有操作栏的旧 Android 版本存在兼容性问题。如果您对所有版本都使用 ActionBarSherlock,则这不是必需的。

关于android - ActionBarSherlock:使用菜单按钮打开子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11412321/

相关文章:

android - action bar下的暗线和渐变怎么去掉

android - 在 Xamarin Forms 中设置元素的资源名称

android - 如何使用 React-Native-Camera 捕获获取元数据?

java - 多级菜单ArrayLists中对象的循环(Java)

visual-studio-2010 - VS2010 在哪里存储修改后的键盘快捷键?

android - 如何使用 AppCompat 库在 ActionBar 中显示 NavigationDrawer 图标

android - 如何在 MotionLayout 中创建带约束的幻灯片动画?

android - 无法为 RecyclerView.Adapter 中的特定 textView 赋值

javascript - 具有保存位置的 jquery 菜单

android - Android 2.3.5 上的 ActionBar 和 SearchView 问题