【发布时间】:2014-06-18 06:01:39
【问题描述】:
背景
我有一个在操作栏中有子菜单的应用程序,用于选择排序类型。
如果您只点按操作项,效果会非常好。
下面是 actionBar 上子菜单的外观:
代码
为了便于理解我所做的,这里是子菜单部分的简短版本:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.test.MainActivity" >
<item
android:icon="@drawable/ic_action_collections_sort_by_size_holo_dark"
android:title="sorting"
app:showAsAction="ifRoom">
<menu >
<group
android:checkableBehavior="single"
android:menuCategory="container" >
<item
android:id="@+id/menuItem_sortByInstallTime"
android:title="by install time">
</item>
<item
android:id="@+id/menuItem_sortByUpdateTime"
android:title="by update time">
</item>
<item
android:id="@+id/menuItem_sortByAppName"
android:title="by app name">
</item>
<item
android:id="@+id/menuItem_sortByPackageName"
android:title="by package name">
</item>
</group>
</menu>
</item>
</menu>
问题
从 Kitkat (Android 4.4) 开始,用户可以在到达想要选择的项目时按住并离开,而不是点击项目。
该功能在“Drag-to-Select”下显示为here。大多数人不知道这个功能,但人们已经报告了一个非常烦人的错误。
如果您试用上面的代码(或我的应用程序)并使用此功能,您会注意到您将无法再次单击相同的操作项,除非您先单击其他操作项。
没错,它被屏蔽,直到你选择别的东西。
我已经用 Kitkat 在 Nexus 4 上测试过这个问题,并且可以确认。
查看其他应用程序(甚至是 Google 的应用程序),我可以注意到一个类似的问题:即使我找不到具有分组子菜单的确切示例,但对于常规子菜单,操作项会被阻止一段时间单次。再次单击它会释放它。
问题
为什么会这样?
我的代码有什么问题吗?
这是一个错误吗?
我该如何解决?
如果没有修复,我应该创建自己的弹出菜单,还是有其他解决方法?
【问题讨论】:
标签: android android-actionbar submenu android-4.4-kitkat drag-to-select