studio programacion para libros gratis edición desarrollo desarrollar aprende aplicaciones android android-layout search search-suggestion

para - programacion android pdf 2018



Búsqueda de Android: personalizar diseño de sugerencias (3)

He estado siguiendo las instrucciones here para SearchView y las implementaciones de diálogo. Ambos son visibles a continuación. Hay muchas preguntas sobre SO que se centran en la personalización del cuadro de búsqueda, pero pocas son sobre la personalización de la interfaz de usuario de las sugerencias. (Los que sí lo hacen son sobre el color / fuente, los valores predeterminados que están bien para mí). Me gustaría poder ampliar las sugerencias para ocupar todo el ancho de la pantalla. ¿Hay alguna forma de personalizar el ancho utilizando el diálogo o las implementaciones de SearchView? Prefiero no usar una biblioteca a menos que esa sea la única opción. Si esto es posible o más fácil con una de las implementaciones, está bien.

Aquí es cómo se ve la implementación del diálogo para mí:

Aquí es cómo se ve la implementación de SearchView para mí:


Así es como puedes hacerlo:

Paso 1

Simplemente cree un diseño con un RecyclerView o una lista expandible o una lista que desee utilizar.

Paso 2

En tu actividad ( CityActivity ) necesitas hacer esto:

  1. Crea un manejador como este:

private static class SearchHandler extends Handler { private WeakReference<CityActivity> mTarget; SearchHandler(CityActivity target) { mTarget = new WeakReference<>(target); } public void setTarget(CityActivity target) { mTarget.clear(); mTarget = new WeakReference<>(target); } @Override public void handleMessage(final Message msg) { if (msg.what == CityActivity.TRIGGER_SEARCH) { CityActivity activity = mTarget.get(); activity.makeRequest(mSearchText.trim()); } } }

  1. ponga un TextChangeListener en su searchEditText :

public void setTextChangeListener() { searchView.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mSearchText = searchView.getText().toString(); if (!mSearchText.trim().isEmpty()) { handler.removeMessages(CitySelectionActivity.TRIGGER_SEARCH); handler.sendEmptyMessageDelayed(CityActivity.TRIGGER_SEARCH, CityActivity.SEARCH_TRIGGER_DELAY_IN_MS); } else { suggestList.clear(); fillAnything(); } } @Override public void afterTextChanged(Editable s) { } }); }

Aquí suggestList son los datos que se dan a su lista de


Debe crear una actividad para los resultados de búsqueda y escribir un archivo xml de diseño donde la vista de lista o el recyclerview rellenen el ancho utilizando el valor match_parent. El contenido debe ser resultados de búsqueda en el adaptador.


Here está el repositorio que elige el lugar de la búsqueda de direcciones de Google. Tiene implementación de lista de búsqueda de pantalla completa.

Searchview personalizado