Java 移除项目时Android CAB强制溢出菜单
在我的应用程序中,我有一个带有四个菜单项的CAB。其中两个显示,另两个在溢出菜单中。在我的代码中,当用户在listview中选择了多个项目时,其中一个项目将被删除。删除该项后,溢出菜单消失,其余三项全部显示。我希望它继续显示两个项目,并隐藏在溢出菜单中的其余一个 菜单布局:Java 移除项目时Android CAB强制溢出菜单,java,android,android-actionbar,Java,Android,Android Actionbar,在我的应用程序中,我有一个带有四个菜单项的CAB。其中两个显示,另两个在溢出菜单中。在我的代码中,当用户在listview中选择了多个项目时,其中一个项目将被删除。删除该项后,溢出菜单消失,其余三项全部显示。我希望它继续显示两个项目,并隐藏在溢出菜单中的其余一个 菜单布局: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"
<?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>
谢谢你的帮助 使用时,您没有使用上下文操作栏的支持库版本-您的代码只支持API11+设备
您可以将app:showAsAction
替换为android:showAsAction
,以符合平台上下文操作栏的要求(如果要抑制lint错误,请使用tools:ignore=“AppCompatResource”
)或者切换到以响应长时间单击列表项并自行管理检查状态。使用时,您没有使用上下文操作栏的支持库版本-您的代码将仅支持API11+设备
您可以将
app:showAsAction
替换为android:showAsAction
,以符合平台上下文操作栏的要求(如果要抑制lint错误,请使用tools:ignore=“AppCompatResource”
)或者切换到以响应长时间单击列表项并自行管理检查状态。如果您使用的是appcompat-v7
,您的菜单资源XML看起来会满足您的需要。如果您试图使用本机操作栏(即,您是从活动
继承的,而不是操作栏活动
),则将app:showAsAction
更改为android:showAsAction
,并完全摆脱应用
命名空间。您是如何启动CAB的?Via?@Commonware我正在使用ActionBarActivity,但它并没有显示我希望它的样子。删除第一项后,溢出菜单消失,最后一项显示,即使它被设置为从不显示。@ianhanniballake cab从MultiChoiceModelListener启动,并在onCreateActionMode中充气。如果您使用的是appcompat-v7
,菜单资源XML看起来会满足您的需要。如果您试图使用本机操作栏(即,您是从活动
继承的,而不是操作栏活动
),则将app:showAsAction
更改为android:showAsAction
,并完全摆脱应用
命名空间。您是如何启动CAB的?Via?@Commonware我正在使用ActionBarActivity,但它并没有显示我希望它的样子。删除第一项后,溢出菜单消失,最后一项显示,即使它被设置为从不显示。@ianhanniballake cab是从MultiChoiceModelListener启动的,并在onCreateActionMode中充气。Android Studio给我一个错误,即在使用appcompat库应用程序时:showAsAction必须被解析。代码本身的功能已经很好了,但是它并没有按照我希望的方式显示。是的,当你使用AppCompat时,你需要使用app:showaAction。但是,如果使用的是setMultiChoiceModeListener()
,则不使用AppCompat。您可以添加tools:ignore=“AppCompatResource”
来忽略错误。感谢您的帮助!奇怪的是,Android Studio在实际运行正常时会给出错误。如果使用startSupportActionMode()
对于API 11之前的上下文操作栏-不幸的是,lint检查似乎只是查看您的项目中是否有AppCompat,而不知道您不会仅在这一个菜单中使用AppCompat。Android Studio给我一个错误,即在使用AppCompat库应用程序时:showAsAction必须被解析。代码本身的功能已经很好了,但是它并没有按照我希望的方式显示。是的,当你使用AppCompat时,你需要使用app:showaAction。但是,如果使用的是setMultiChoiceModeListener()
,则不使用AppCompat。您可以添加tools:ignore=“AppCompatResource”
来忽略错误。感谢您的帮助!奇怪的是,Android Studio在实际运行正常时会给出错误。如果使用startSupportActionMode()
对于API 11之前的上下文操作栏-不幸的是,lint检查似乎只是查看项目中是否有AppCompat,而不知道您不会仅为这一个菜单使用AppCompat。