android - seguir - porque no se guardan los hashtags en instagram
¿Cómo hacer que SearchView siempre se expanda en Android? (4)
Estoy haciendo esto en fragmentos, lo hice usando
searchItem.expandActionView();
pero cuando el usuario presiona el botón Atrás se colapsa, así que en el método de colapso utilicé
getActivity().getSupportFragmentManager().popBackStack();
// when it collapsed i am going back
A continuación es mi solución en detalle:
search_menu.xml
<?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/search_contacts"
android:title="search"
android:icon="@drawable/search2"
app:showAsAction="ifRoom|collapseActionView"
app:actionViewClass="android.support.v7.widget.SearchView" >
</item>
</menu>
en el fragmento que he usado debajo del código:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.search_menu, menu);
// Define the listener
MenuItemCompat.OnActionExpandListener expandListener = new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item)
{
getActivity().getSupportFragmentManager().popBackStack();
// Do something when action item collapses
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item)
{
// Do something when expanded
return true; // Return true to expand action view
}
};
MenuItem searchItem = menu.findItem(R.id.search_contacts);
// Assign the listener to that action item
MenuItemCompat.setOnActionExpandListener(searchItem, expandListener);
// Any other things you have to do when creating the options menu…
SearchView searchView =
(SearchView) MenuItemCompat.getActionView(searchItem);
//searchView.setIconifiedByDefault(false);
searchItem.expandActionView(); // when fragment opens it expanded auto
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText)
{
seachViewFunction(newText); // in searchViewFunction(newText); i am doing my things
return false;
}
});
super.onCreateOptionsMenu(menu, inflater);
}
Tengo SearchView
en la parte superior del diseño (no en la barra de acciones), ¿existe alguna forma de forzar que esta View
siempre se expanda (se abra)?
Si no, deseo colocar una imagen elegante cerca de ella, ¿hay SearchView
hacer que SearchView
oculte esta imagen cuando se expande (hace clic / expande)?
Puede usar la propiedad android:iconifiedByDefault="false"
en XML o establecer programáticamente setIconifiedByDefault(false)
. Según la documentación, esta propiedad establece el SearchView
expandido como desee.
Eche un vistazo a SearchView.setIconifiedByDefault(boolean iconified)
Puedes intentar usar
searchView.onActionViewExpanded();
y si no necesita teclado abierto
searchView.clearFocus();
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchItem.expandActionView();
y en el archivo de menú, use
showAsAction="ifRoom|collapseActionView"
Si alguna consulta, no dude en comentar.