SearchView扩展样式依赖于项目顺序

时间:2015-09-07 12:33:50

标签: android searchview android-toolbar

我在工具栏中使用了SearchView(support.v7),我遇到了以下问题。当我将搜索图标的位置设置为最右边的图标时,左侧会显示三个矩形图标。

如果我将搜索图标作为最左侧的图标,ActionView搜索会替换几乎整个Toolbar a并隐藏三个矩形图标。我想要工具栏1操作项目订单,但使用工具栏2扩展样式

工具栏1: Toolbar 1 工具栏1 - 展开: Toolbar 1 - expanded

工具栏2: Toolbar 2 工具栏2 - 展开: Toolbar 2 - expanded

创建菜单:

@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将(可能)正确的项目移出屏幕,但是左边的项目会停留在其位置上。感谢您的所有建议。

0 个答案:

没有答案