【问题标题】:How to prevent menu from disappearing on item click in Android?如何防止菜单在Android中单击项目时消失?
【发布时间】:2019-11-02 10:49:21
【问题描述】:

我有一个菜单,其中所有项目都有一个复选框。 所以它就像一个多选菜单。 单击某个项目时,我不希望菜单关闭。 我只想在后按时关闭菜单。 但我不知道该怎么做?

这是代码:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when(item.itemId) {
        R.id.my_item -> {
            // toggle    
        }
    }

    // something to do here?
    // changing return value to true or false doesn't help
    return false
}

【问题讨论】:

  • here 已经回答了一个类似的问题。我希望这会有所帮助。

标签: android kotlin android-menu


【解决方案1】:

该实现隐藏在原生 Android 菜单管理下,您只能获得所选菜单项的回调。 最好将所有选择项移动到 AlertDialog (There is simple example I have just googled 并且只有一个菜单项开始显示该 AlertDialog

【讨论】:

  • 是的,AlertDialog 是一个选项,但我不想这样做,我只是出于好奇而问了这个问题。
【解决方案2】:

您必须将 menu items 包裹在 group 标记中。参考以下代码:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="all">
        <item android:id="@+id/item1"
              android:titleCondensed="Options"
              android:title="Title 1"
              android:icon="@android:drawable/ic_menu_preferences">
        </item>
        <item android:id="@+id/item2"
              android:titleCondensed="Persist"
              android:title="Title 2"
              android:icon="@android:drawable/ic_menu_preferences"
              android:checkable="true">
        </item>
    </group>
</menu>

点击链接了解更多checkable menu items

【讨论】:

  • 我已经将我的菜单项包装在组标签中。这不会阻止菜单在单击项目时关闭。
  • 你添加了吗-->。 android:checkableBehavior="all" ?
  • 是的,我有。据我所知,checkableBehaviour="all" 在“视觉上”对一个组没有任何影响,但checkableBehaviour="single" 使该组成为一个广播组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 2021-06-14
  • 1970-01-01
  • 2018-06-30
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多