Existe este widget para a ActionBar que se chama 'SearchView'. Quando não está em uso, tem a seguinte aparência:
E quando está em uso, tem a seguinte aparência:
Eu quero (programaticamente, é claro) abrir o searchview (torná-lo "em uso").
Tentei várias funções, como:
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
searchView.performClick();
searchView.requestFocus();
Mas nada disso funcionou ...
O SearchView no XML:
<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
java
android
android-actionbar
Eli Revah
fonte
fonte
showAsAction="always"
faz com que o ícone de pesquisa permaneça na barra de ação quando é expandido, o que não se parece com a aparência ao focar a pesquisa manualmente.Tente chamar
expandActionView()
MenuItem, não onActionViewExpanded () em ActionView.Funciona para mim.
fonte
showAsAction: always
que causa alguns problemas.Se você quiser usar a biblioteca de suporte apenas quando necessário, faça isso
mais simplesmente faça isso
fonte
Eu sei que esta tarde mas
Tente chamar expandActionView () para abri-lo e collapseActionView () para fechá-lo. Você pode chamar requestFocus () na Action View real via getActionView () para dar o foco da view de pesquisa :)
fonte
Expandindo a resposta de Matthias Robberts:
Eu queria um fragmento de lista para manter seu valor de pesquisa e defini-lo depois que o usuário retornar de outro fragmento.
e para o menu que mantenho
always|collapseActionView
, caso contrário, ele permanece aberto quando o usuário exclui o texto.fonte
Para abrir uma
searchView
guardaclose_button
no final, use isso emonCreate
: -fonte