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" />