Представление поиска с коллапсомActionView|всегда не работает в меню действий

В действии 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;
        }

Это противоречит документации


person Mohammad Yahia    schedule 27.03.2017    source источник


Ответы (1)


В отличие от случая, когда при использовании представления поиска на панели действий желаемый эффект свертывания для представления поиска при использовании других элементов в режиме действия

app:showAsAction="always"

без сворачивания ActionView !

person Mohammad Yahia    schedule 27.03.2017