Я следил за инструкциями здесь как для реализации SearchView, так и для диалогов. Оба они видны ниже. На SO есть много вопросов, которые сосредоточены на настройке окна поиска, но мало что касается настройки пользовательского интерфейса предложений. (Те, которые относятся к цвету/шрифту, по умолчанию для меня это хорошо). Я хотел бы иметь возможность расширить предложения, чтобы охватить всю ширину экрана. Есть ли способ настроить ширину, используя либо диалог, либо реализацию SearchView. Я бы предпочел не использовать библиотеку, если это единственный вариант. Если это возможно или проще с одной из реализаций, это нормально.
Поиск по андроиду: настройка макета предложения
Ответ 1
Вот как вы можете это сделать:
Шаг 1:
Просто создайте макет с просмотром или расширенным списком повторного использования или списком в зависимости от того, что вы хотите использовать.
Шаг 2. В вашей деятельности (CityActivity) вам нужно сделать следующее:
- Создайте обработчик следующим образом:
закрытый статический класс SearchHandler расширяет обработчик {
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) {
}
});
}
Здесь предлагаемый список - это данные, которые предоставляются вашему списку
Ответ 2
Здесь это репозиторий, который выбирает место из поиска адресов google. Он реализует список полноэкранного поиска.
Индивидуальная поисковая система
Ответ 3
Вы должны создать действие для результатов поиска и написать файл xml-макета, где listview или recyclerview заполнять ширину, используя значение match_parent. Контент должен быть результатом поиска в адаптере.