Вопрос заключается в следующем: я реализовал SearchView в ToolBar, при этом в активности нет элемента ListView. На ней расположены 10 кнопок с картинками. Как сделать чтобы при открытии SearchView кнопки пропадали и появлялся список, по которому производится поиск?
Во многих приложениях при нажатии на SearchView содержимое экрана пропадает, остается только белый фон и на нем сразу отображается ListView по которому идет поиск. Хочу сделать также.
Если вопрос неясен, напишите в комментариях, постараюсь сделать картинки.
В вашем activity переопределите метод onCreateOptionsMenu
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//R.menu.dashboard поменйте на id своего меню
inflater.inflate(R.menu.dashboard, menu);
//R.id.action_search поменйте на id своего searchView
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) searchItem.getActionView();
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
//скрываете UI, показываете список с результатами поиска
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
//скрываете список с результатами поиска, показываете UI
return true;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//производите поиск, обновляете содержимое списка
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
C помощью вышеприведенного кода можно реагировать на открытие/закрытие searchView, а также на ввод в него текста
Как сделать чтобы при открытии SearchView кнопки пропадали и появлялся список, по которому производится поиск?
это необходимо делать вручную, например так (вариант не оптимальный, но самый понятный). Поместите в активити список, в котором будете отображать результаты поиска, сделайте его невидимым
setVisibility(View.INVISIBLE)
При открытии searchView делаете список видимым,setVisibility(View.VISIBLE) а все кнопки - невидимыми. Т.е. у всех кнопок надо вызвать
setVisibility(View.INVISIBLE)
Ну а при закрытии searchView - делает все наоборот
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости