ActionBar всегда расширял SearchView со значком внутри

У меня есть ActionBar с SearchView.

Я хочу, чтобы представление поиска всегда было "открытым" (расширенным). Делать это можно, используя

mSearchView.setIconifiedByDefault(false);

Но это почему-то перемещает значок поиска за пределы текстовой области:

Если я не использую setIconifiedByDefault(), похоже, что я хочу, чтобы он выглядел при развертывании:

Но затем он превращается в значок поиска на спине, а также

MenuItemCompat.expandActionView(searchItem);

Не похоже, чтобы помочь.

Есть ли способ добиться того, чего я хочу?

2 ответа

Вы можете просто перехватить событие OnClose:

searchView.setOnCloseListener(new SearchView.OnCloseListener() {
    @Override
    public boolean onClose() {
        return true;
    }
});

Всегда показывать / расширять окно поиска на панели действий

Это двухэтапное решение,

1.public void onCreateOptionsMenu(M...... searchView.setIconifiedByDefault(false);}

2. Убедитесь, что в XML-файле меню установлено android:showAsAction="always".

<item    
        android:id="@+id/grid_default_search"
        android:icon="@android:drawable/ic_menu_search"
        android:title="search"
        android:showAsAction="always"
        android:actionViewClass="android.widget.SearchView"
    />

Я смог решить эту проблему, изменив мой XML с

<item android:id="@+id/search"
android:icon="@drawable/my_icon"
app:showAsAction="always|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" />

в

<item android:id="@+id/search"
android:icon="@drawable/my_icon"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
Другие вопросы по тегам