我在工具栏中使用了SearchView(support.v7),我遇到了以下问题。当我将搜索图标的位置设置为最右边的图标时,左侧会显示三个矩形图标。
如果我将搜索图标作为最左侧的图标,ActionView
搜索会替换几乎整个Toolbar
a并隐藏三个矩形图标。我想要工具栏1操作项目订单,但使用工具栏2扩展样式。
创建菜单:
@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_search, menu); // just switching these 2 lines
inflater.inflate(R.menu.menu_nearby, menu); // to reach different expansion styles
// show only one of two icons in menu_nearby
menu.findItem(R.id.menu_list).setVisible(!listVisible);
menu.findItem(R.id.menu_map).setVisible(listVisible);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menu_search));
final MyAdapter adapter = new MyAdapter(getActivity());
searchView.setSuggestionsAdapter(adapter);
}
menu_search.xml :
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_search"
android:icon="@drawable/ic_menu_search"
android:title="@string/menu_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always"/>
</menu>
menu_nearby.xml :
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_map"
android:title="@string/map"
android:icon="@drawable/ic_map"
app:showAsAction="always"/>
<item
android:id="@+id/menu_list"
android:title="@string/list"
android:icon="@drawable/ic_nearby_list"
app:showAsAction="always"/>
</menu>
styles.xml 中的SearchView样式:
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="closeIcon">@drawable/ic_cancel_search</item>
<item name="searchIcon">@drawable/ic_menu_search</item>
<item name="queryBackground">@drawable/bg_search_view</item>
<item name="queryHint">@string/search_term</item>
</style>
真的很有趣,为什么SearchView
将(可能)正确的项目移出屏幕,但是左边的项目会停留在其位置上。感谢您的所有建议。