Intereting Posts
Android – Geocoder.getFromLocationName () не работает в устройстве ICS Android Подписанный APK, показывающий как Unsigned APK при попытке загрузить на производство Javax.net.ssl.SSLException: соединение закрыто одноранговым узлом 4.4.2 (работает с 6.0.1) Android Monitor.bat не работает Флажок в ExpandableListView Как выделить эту страницу в формате pdf с помощью Ontouchevent в android Как сделать AppBarLayout фоном прозрачным Эквивалент NavUtils, если вы не используете библиотеку поддержки Android? Добавьте один разделитель раздела для навигационного ящика в Android LayerDrawable для растрового изображения Как избежать onCreateView () при прокрутке в вкладках Как отправить многостраничный запрос с помощью Volley без HttpEntity? Установить текст предупреждающего сообщения AlertDialog, который должен быть полужирным Android не удалось экспортировать приложение Android: использует setContentView несколько раз плохо при изменении раскладок?

Пользовательский SearchView полностью доступен для Android в Android

У меня есть виджет SearchView в моем приложении, и я хочу задать некоторые вопросы о его создании. Прежде всего, вы можете начать поиск, нажав на значок поиска, есть ли способ сделать весь SearchView доступным? Кроме того, есть ли способ заставить SearchView выглядеть примерно так, когда нажимается?

Занятый кот http://i41.tinypic.com/rr2ow4.png ! [] [1]

Сейчас в этом состоянии:

Занятая кошка http://i41.tinypic.com/11jlu2p.png ! [] [1]

Вот мой код:

citySearch = (SearchView) findViewById(R.id.city_search_bar); citySearch.setBackgroundResource(R.drawable.search_background); citySearch.setOnSearchClickListener(new OnClickListener() { @Override public void onClick(View arg0) { citySearch.setIconifiedByDefault(true); //citySearch.setIconified(true); } }); citySearch.setOnQueryTextListener(new OnQueryTextListener() { @Override public boolean onQueryTextChange(String text) { ((Filterable) cityListView.getAdapter()).getFilter().filter(text); return false; } @Override public boolean onQueryTextSubmit(String text) { return false; } }); try { Field searchField = SearchView.class.getDeclaredField("mSearchButton"); searchField.setAccessible(true); ImageView searchBtn = (ImageView)searchField.get(citySearch); searchBtn.setImageResource(R.drawable.search_icon); searchBtn.setScaleType(ScaleType.FIT_CENTER); searchPlate.setBackgroundResource(R.drawable.search_background); } catch (NoSuchFieldException e) { Log.e("SEARCHSTYLEERROR",e.getMessage(),e); } catch (IllegalAccessException e) { Log.e("SEARCHSTYLEERROR",e.getMessage(),e); } 

По умолчанию SearchView «отображается», который отображается как значок увеличительного стекла, и только если пользователь нажимает на значок, то поле редактирования расширяется.

Чтобы пользователь мог щелкнуть в любом месте SearchView и расширить поле ввода. Нам просто нужно добавить прослушиватель кликов и вызвать setIconified (false), когда пользователь нажимает.

 searchView = (SearchView)findViewById(R.id.searchView); searchView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { searchView.setIconified(false); } });