Андроид поиск: настройка макета предложения

Я слежу за указаниями как для SearchView, так и для реализаций диалоговых окон. Оба они видны ниже. На SO есть много вопросов, которые сосредоточены на настройке окна поиска, но мало что касается настройки пользовательского интерфейса предложений. (Те, которые относятся к цвету / шрифту, по умолчанию для меня это хорошо). Я хотел бы расширить предложения, чтобы охватить всю ширину экрана. Есть ли способ настроить ширину, используя либо диалог, либо реализацию SearchView. Я бы предпочел не использовать библиотеку, если это единственный вариант. Если это возможно или проще с одной из реализаций, это нормально.

Вот как выглядит реализация диалога для меня: Введите описание изображения здесь

Вот как выглядит реализация SearchView для меня: Введите описание изображения здесь

Так вы можете это сделать: Это то, что я создал Шаг 1 :

Просто создайте макет с просмотром ресайклера или расширяемым списком или списком в зависимости от того, что вы хотите использовать.

Шаг 2. В вашей деятельности (CityActivity) вам нужно сделать следующее:

  1. Создайте обработчик следующим образом:

Private static class SearchHandler расширяет 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()); } } 

} 2. Поместите textchangelistener на ваш искомый текст

 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) { } }); } 

Здесь предлагается список – это данные, которые приводятся в вашем списке

Вот репозиторий, который выбирает место из поиска адресов google. Он реализует список полноэкранного поиска.

Индивидуальный поиск

Индивидуальный поиск

Вы должны создать действие для результатов поиска и написать XML-файл макета, где listview или recyclerview fill width, используя значение match_parent. Контент должен быть результатом поиска в адаптере.