vista revisar para optometria online medir examen app aplicaciones aplicacion android android-actionbar

android - revisar - examen de la vista online



Evento cuando la vista de búsqueda se expande desde la vista iconificada (3)

Qué evento (s) debo escuchar para determinar cuándo el usuario hace clic en SearchView iconificado. Quiero quitar algunos elementos (pestañas de navegación de ActionBar, si es importante) de la barra de acciones para hacer más espacio en la orientación vertical.

Probé OnClickListener, OnFocusChangeListener, OnTouchListener y otros eventos, pero ninguna de las dos se desencadena por la expansión de SearchView.


Desde API Nivel 14 tienes un oyente dedicado: http://developer.android.com/guide/topics/ui/actionbar.html

@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.options, menu); MenuItem menuItem = menu.findItem(R.id.actionItem); ... menuItem.setOnActionExpandListener(new OnActionExpandListener() { @Override public boolean onMenuItemActionCollapse(MenuItem item) { // Do something when collapsed 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 } }); }


Encontré una forma de obtener ese evento usando addOnLayoutChangeListener

private final OnLayoutChangeListener _searchExpandHandler = new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { SearchView searchView = (SearchView)v; if (searchView.isIconfiedByDefault() && !searchView.isIconified()) { // search got expanded from icon to search box, hide tabs to make space getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); } } };


Si está utilizando MenuItemCompat :

MenuItem searchMenuItem = menu.findItem(R.id.action_search); MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() { @Override public boolean onMenuItemActionCollapse(MenuItem item) { Log.d("TAG", "Collapsed"); return true; } @Override public boolean onMenuItemActionExpand(MenuItem item) { Log.d("TAG", "Expanded"); return true; } });