programa para ocultar como carpetas app aplicaciones aplicacion android android-actionbar searchview

android - para - ocultar aplicaciones apk



Expandir la vista de búsqueda para usar la barra de acción completa(ocultar otras cosas) (3)

Bueno, puedes imitarlo ocultando todos los demás elementos cuando se amplíe SearchView :

@Override public boolean onCreateOptionsMenu(final Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); final MenuItem searchItem = menu.findItem(R.id.search); SearchView searchView = (android.widget.SearchView) searchItem.getActionView(); // Detect SearchView icon clicks searchView.setOnSearchClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setItemsVisibility(menu, searchItem, false); } }); // Detect SearchView close searchView.setOnCloseListener(new SearchView.OnCloseListener() { @Override public boolean onClose() { setItemsVisibility(menu, searchItem, true); return false; } }); return super.onCreateOptionsMenu(menu); } private void setItemsVisibility(Menu menu, MenuItem exception, boolean visible) { for (int i=0; i<menu.size(); ++i) { MenuItem item = menu.getItem(i); if (item != exception) item.setVisible(visible); } }

Tengo un SearchView dentro de mi ActionBar , y quiero usar toda la ActionBar cuando se presiona el ícono de búsqueda, pero solo puedo usar el espacio libre de la ActionBar

ej .: http://imgur.com/wnjMfWO

mi código de menú:

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context="br.com.moderna.houaiss.activity.SearchActivity" > <item android:id="@+id/search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/ic_search_white_48dp" android:showAsAction="collapseActionView|always" android:title="@string/search"/> <item android:id="@+id/backWardHistory" android:icon="@drawable/ic_arrow_back_white_48dp" android:showAsAction="always" android:title="@string/back_history"/> <item android:id="@+id/forWardHistory" android:icon="@drawable/ic_arrow_forward_white_48dp" android:showAsAction="always" android:title="@string/forward_history"/> <item android:id="@+id/action_home" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_home"/> <item android:id="@+id/action_about" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_about"/> <item android:id="@+id/action_configuration" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_configuration"/> <item android:id="@+id/action_logout" android:orderInCategory="100" android:showAsAction="never" android:title="@string/action_logout"/>

Había probado android:showAsAction="ifRoom" , pero necesito que estén siempre en mi ActionBar , y no dentro de mi menú.

EDITAR ------

Gracias a @Simas,

Utilicé el método setOnActionExpandListener para lograr este efecto

final MenuItem searchItem = menu.findItem(R.id.search); searchItem.setOnActionExpandListener(new OnActionExpandListener() { @Override public boolean onMenuItemActionExpand(final MenuItem item) { SearchActivity.this.setItemsVisibility(menu, searchItem, false); return true; } @Override public boolean onMenuItemActionCollapse(final MenuItem item) { SearchActivity.this.setItemsVisibility(menu, searchItem, true); return true; } }); private void setItemsVisibility(final Menu menu, final MenuItem exception, final boolean visible) { for (int i = 0; i < menu.size(); ++i) { MenuItem item = menu.getItem(i); if (item != exception) item.setVisible(visible); } }


Esta sería una respuesta tardía, pero podría agregar este atributo a su elemento de menú y el trabajo se hará por usted.

app:showAsAction="collapseActionView|always"

Palabra clave aquí es el colapsoActionView.


Intenté esta línea de código para hacer que la vista de búsqueda expanda el ancho completo disponible. Esto funciona cuando hay otros elementos que se muestran en la barra de acción.

searchView.setMaxWidth(android.R.attr.width);