una tutorial selectivo para nitidez mejorar las ingles imagen fotos enfoque enfocar efecto desenfoque desenfocar dar como calidad borrosa android search focus expand

android - tutorial - enfocar en ingles photoshop



Expandir y dar enfoque a SearchView automáticamente (14)

Estoy desarrollando una aplicación donde el usuario presiona el ícono "Buscar" en la ActionBar y se hace visible un ActionBar en la parte superior de la pantalla.

Mi problema es que SearchView no está enfocado ni expandido, por lo que el usuario tiene que presionar el botón de búsqueda en la Searchview de Searchview para expandirlo y sacar el teclado.

¿Cómo se debe resolver esto?


Esto funcionó para mí:

En el diseño de la raíz:

xmlns:app="http://schemas.android.com/apk/res-auto"

SearchView definido de la siguiente manera:

<android.support.v7.widget.SearchView android:id="@+id/search_contacts" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="15dp" android:background="@drawable/search_view" app:iconifiedByDefault="false" app:queryHint="Search name or email" > <requestFocus /> </android.support.v7.widget.SearchView>

La diferencia es con la etiqueta de la aplicación.

app:iconifiedByDefault="false" app:queryHint="Search name or email"


Esto funcionó para mí:

menu.expandActionView();


Estoy usando android.widget Searchview e iconificado de forma predeterminada. El código de abajo en xml me ayudó a expandirlo y a enfocarme automáticamente en la vista de búsqueda, cuando hice clic:

<SearchView android:id="@+id/searchView" android:layout_width="match_parent" android:layout_height="wrap_content" android:iconifiedByDefault="true" android:focusable="true" android:focusableInTouchMode="true" android:queryHint="Search"/>


La respuesta de @ Pascalius funcionó para mí. Pero cada vez que cierras el SearchView y vuelves a hacer clic, pierdes el Focus. Así que setOnMenuItemClickListener el código en un setOnMenuItemClickListener así:

MenuItem item = menu.findItem(R.id.action_search); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); final SearchView searchView = (SearchView) item.getActionView(); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { searchView.setIconifiedByDefault(true); searchView.setFocusable(true); searchView.setIconified(false); searchView.requestFocusFromTouch(); return false; } });


Para hacer que SearchView se expanda de manera predeterminada, llame a setIconifiedByDefault(false) cuando lo onCreateOptionsMenu(..) p. Ej. En onCreateOptionsMenu(..) o onPrepareOptionsMenu(..) ). He encontrado en la mayoría de los casos que esto le dará enfoque automáticamente, pero si no, simplemente llame requestFocus() también.


Para la vista de búsqueda de Appcompat puedes usar este método:

MenuItemCompat.expandActionView(mSearchMenuItem);



SearchView de MenuItemCompat tiene una propiedad llamada maxWidth.

final MenuItem searchItem = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); searchView.setMaxWidth(xxx);

use ancho de pantalla en lugar de xxx curso


Si está utilizando dentro de una actividad que necesita usar

view.onActionViewExpanded();

si está utilizando opciones de menú dentro, debe usar

MenuItem.expandActionView();

Nota: solo funciona para SearchView

estas dos situaciones me funcionan.


Si lo está utilizando en el diseño, puede llamar

mSearchView.onActionViewExpanded()


Si quieres tenerlo iconifiedByDefault , esto funcionó para mí. setFocusable y setIconified son necesarios.

SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setIconifiedByDefault(true); searchView.setFocusable(true); searchView.setIconified(false); searchView.requestFocusFromTouch();

Actualización: si está utilizando android.support.v7.widget.SearchView el comportamiento es muy diferente. clearFocus es necesario si no desea que el teclado aparezca todo el tiempo. Por alguna razón, el menú se recrea todo el tiempo, cuando se utiliza appcompat.

SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setIconified(false); searchView.clearFocus();


También puede llamar al método expandActionView () para forzarlo:

@Override public boolean onCreateOptionsMenu( Menu menu ) { super.onCreateOptionsMenu( menu ); MenuItem searchMenuItem = menu.findItem( R.id.mi_search ); // get my MenuItem with placeholder submenu searchMenuItem.expandActionView(); // Expand the search menu item in order to show by default the query return true; }

Elemento de búsqueda en el diseño de la barra de acciones:

<item android:id="@+id/mi_search" android:icon="@drawable/abs__ic_search_api_holo_light" android:title="@string/search" android:showAsAction="ifRoom|collapseActionView" android:actionViewClass="com.actionbarsherlock.widget.SearchView" />


utilizar esta

SearchManager searchManager = (SearchManager) mActivity.getSystemService(Context.SEARCH_SERVICE); SearchView searchView = new SearchView(mActivity.actionBar.getThemedContext()); searchView.setSearchableInfo(searchManager.getSearchableInfo(mActivity.getComponentName())); searchView.setIconifiedByDefault(false); searchView.setQueryHint("Search"); menu.findItem(R.id.action_search).setActionView(searchView);


android:iconifiedByDefault="true"

en tu archivo xml