我在许多提供搜索功能的应用程序中看到的一种常见模式是让搜索小部件清除ActionBar之外的其他菜单图标。这对我来说只是在我的菜单项中使用ifRoom
showAsAction
。我想在操作栏中显示更多菜单项,因为似乎ActionBar对于如何确定ifRoom
非常保守,因此至少有一个重要的菜单项被推送到溢出(也许某人)比我聪明,知道他们为什么那样做。)
那么当搜索窗口小部件被激活时,如何在清除ActionBar菜单项的同时将showAsAction
设置为always
?当我现在尝试时,菜单项不会移动,搜索小部件会被压缩。
这是我的菜单:
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="collapseActionView|always"
android:actionViewClass="android.widget.SearchView" />
<item
android:id="@+id/action_stores"
android:title="@string/action_stores"
android:icon="@drawable/ic_action_stores"
android:showAsAction="always" />
<item
android:id="@+id/action_shopping_lists"
android:title="@string/action_shopping_lists"
android:icon="@drawable/ic_action_lists"
android:showAsAction="always" />
<item
android:id="@+id/action_preferences"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
我的searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search_hint" >
</searchable>
答案 0 :(得分:0)
无法在onClickListener
上设置search widget
,然后运行几行代码,以便从MenuItems
更改另一个always
}&#39;到&#39; ifRoom
&#39;?
onClickListener中的几行代码将包含以下内容:
myMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
而myMenuItem是你的MenuItem应该来自&#39; always
&#39;到&#39; ifRoom
&#39;。
您可以稍后以适当的方法更改它。