使用collapseActionView搜索视图|始终无法在“操作菜单”上使用

时间:2017-03-27 10:09:12

标签: android android-support-library searchview android-actionmode

在具有上下文操作栏的AppCompat活动中

尝试将android.support.v7.widget.SearchView添加到操作模式菜单 searchView不会扩展

using appcompat-v7:25.2.0

菜单资源文件

<?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">
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_dark_24dp"
        android:title="@string/search_list"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="always|collapseActionView" />
    <item
        android:id="@+id/item_two"
        android:icon="@drawable/item_two"
        android:title="@string/item_two"
        app:showAsAction="ifRoom"
        >
    </item>
</menu>

活动主题

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionModeOverlay">false</item>
    <item name="actionModeBackground">@color/colorPrimaryDark</item>
</style>

活动代码

private class SelectionActionModeCallBack implements ActionMode.Callback {
        private SearchView mSearchView;

        SelectionActionModeCallBack() {


        }


        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            mode.getMenuInflater().inflate(R.menu.book_selection_action_menu, menu);//Inflate the menu over action mode


            mSearchView =
                    (SearchView) menu.findItem(R.id.action_search).getActionView();


            mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String s) {
                    startSearch(s);
                    return true;
                }

                @Override
                public boolean onQueryTextChange(String s) {
                    return false;
                }
            });
            return true;
        }

        @Override
        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            mSearchView.requestFocus();
            return true;
        }

这与文档

相矛盾

1 个答案:

答案 0 :(得分:0)

与在操作栏中使用“搜索视图”时的情况相反,在动作模式中使用其他项目时,搜索视图具有所需的可折叠效果 使用

app:showAsAction="always"

没有collapseActionView!