删除项目时,Android CAB强制溢出菜单

时间:2015-04-06 22:33:10

标签: java android android-actionbar

在我的应用程序中,我有一个带有四个菜单项的CAB。显示两个,而其他两个在溢出菜单中。在我的代码中,当用户在列表视图中选择了多个项目时,将删除其中一个项目。删除该项目后,溢出菜单将消失,并显示所有其余三个项目。我希望它继续显示两个项目并隐藏溢出菜单中的剩余项目。

菜单布局:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<!--disppears when multiple items selected -->
<item
    android:id="@+id/cabEdit"  
    android:title="Edit"
    app:showAsAction="always"></item>
<item
    android:id="@+id/cabDel"
    android:title="Delete"
    app:showAsAction="ifRoom"></item>
<item
    android:id="@+id/cabRes"
    android:title="Reset"
    app:showAsAction="ifRoom"></item>

<!-- should always appear in overflow -->
<item
    android:id="@+id/cabSelAll"  
    android:title="Select All"
    app:showAsAction="never" ></item>

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

当您使用setMultiChoiceModeListener()时,您没有使用支持库版本的Contextual Action Bars - 您的代码只支持API11 +设备。

您可以将app:showAsAction替换为android:showAsAction以符合平台上下文操作栏的要求(如果要抑制lint错误,则使用tools:ignore="AppCompatResource")或切换到{{ 3}}响应您对列表项的长按并自行管理检查状态。