我有一个像这样的操作栏菜单
<item
android:id="@+id/action_select_filter"
android:title="@string/action_filter"
app:showAsAction="ifRoom|withText">
<menu>
<group
android:id="@+id/action_select_filters"
android:checkableBehavior="all"
>
<item
android:id="@+id/action_filter_open"
android:checkable="true"
android:title="@string/action_filter_open"
/>
...
</group>
</menu>
</item>
我希望它是从操作栏下拉的多选过滤器菜单。但是当我单击其中一个选项时,子菜单会立即关闭。我希望它留在那里,直到用户决定他想要打开的所有过滤器确实打开。
我知道这个问题,但它已经很老了,解决方案就是黑客攻击。 Android checkable submenu options
我也尝试从onOptionsItemSelected(MenuItem item)返回false / true。
那么如何抑制这种默认行为?
答案 0 :(得分:1)
菜单的想法是让用户选择现在应该发生的事情 - 然后再进行操作。
如果您有多个复选框,用户可以设置或取消设置过滤器,那么我的建议是遵循Android设计指南:
只需使用小布局复选框和按钮来调用活动以保存更改。
不那么复杂的用户体验和更稳定的应用程序(没有黑客)将在您身边。