Intereting Posts
Построить проект андроида из командной строки Nine-Patch Drawable vs Shape Drawable. Что должно быть предпочтительнее? Очистить стек обратно, когда объект приложения будет убит системой Класс не найден Исключение при запуске демонстраций YouTube API для Android Есть ли у RecyclerView какие-либо преимущества, кроме того, что заставить разработчиков использовать шаблон ViewHolder? Как стилизовать фрагмент TabHost в фрагменте Жизненный цикл активности Android после нажатия кнопки «Назад» Можно ли выполнить строку кода Java во время выполнения в Android? Как я могу получить функцию разбиения на страницы в горизонтальном прокрутке без ViewPager Divider исчезает из последнего элемента в списке, если добавлен footerview Как я могу сделать ящик навигации полностью закрывать левый ящик? Немедленно покажите автозаполнение на Android Android: можно ли читать имя пакета в файле AndroidManifest.xml Android Studio Gradle: ошибка: выполнение не выполнено для задачи: app: processDebugGoogleServices. > Отсутствует соответствующий клиент для пакета Android EditText onClick Listener, определенный в макете, не работает с неясным исключением

Изменение цвета фона в раскрывающемся списке автозаполнения searchview

У меня есть поиск с поставщиком контента для пользовательских предложений, которые отображаются в раскрывающемся списке. Однако выпадающий фон темный, а текст черный, поэтому он не очень заметен. Моя тема приложения наследуется от Theme.AppCompat.Light, так что все остальное в моем приложении – черный текст на светлом фоне.

Введите описание изображения здесь

Я хочу изменить фон раскрывающегося списка, чтобы текст был читаемым, но я не нашел способа сделать это. Самое близкое, что я получил, было следующим решением: Стиль Android SearchView Drop down popup. Но когда выпадающее меню появляется, вещи выглядят испорченными.

Введите описание изображения здесь

Есть ли какое-нибудь рабочее решение для этого?

Применяя стили, вы можете изменить цвет фона выпадающего меню и цвет и размер текста элементов

<!-- ToolBar --> <style name="ToolBarStyle" parent="Theme.AppCompat"> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@android:color/white</item> <item name="actionMenuTextColor">@android:color/white</item> <item name="android:dropDownItemStyle">@style/myDropDownItemStyle</item> <item name="android:dropDownListViewStyle">@style/myDropDownListViewStyle</item> </style> <style name="myDropDownItemStyle" parent="Widget.AppCompat.DropDownItem.Spinner"> <item name="android:textColor">@color/secondary_text_default_material_light</item> <item name="android:textSize">14dp</item> </style> <style name="myDropDownListViewStyle" parent="Widget.AppCompat.ListView.DropDown"> <item name="android:background">#FFF</item> </style> 

Вот одна возможность.

Определите макет строки предложения запроса, например R.layout.li_query_suggestion, который выглядит следующим образом:

 <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@android:id/text1" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/white" android:gravity="center_vertical" android:minHeight="56dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:textAppearance="?android:attr/textAppearanceListItemSmall" android:textColor="@android:color/black" tools:text="Blah blah blah"/> 

Обратите внимание, что цвет фона белый, а цвет текста черный. Вы можете, конечно, изменить эти значения.

Затем в адаптере курсора укажите макет, который вы создали как макет строки. Например:

 CursorAdapter suggestionAdapter = new SimpleCursorAdapter( getActivity(), R.layout.li_query_suggestion, null, new String[]{"name"}, new int[]{android.R.id.text1}, 0); 

Это даст вам нечто похожее на следующее: Введите описание изображения здесь

Просто fyi, моя текущая тема выглядит так:

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/light_blue_500</item> <item name="colorPrimaryDark">@color/light_blue_700</item> <item name="colorAccent">@color/pink_a200</item> <item name="android:windowActionBarOverlay">true</item> <item name="searchViewStyle">@style/CustomSearchView</item> </style> 

Я думаю, вы должны использовать

 SearchView.SearchAutoComplete autoCompleteTextView = (SearchView.SearchAutoComplete) searchView.findViewById(R.id.search_src_text); if (autoCompleteTextView != null) { autoCompleteTextView.setDropDownBackgroundDrawable(getResources().getDrawable(R.drawable.abc_popup_background_mtrl_mult)); } 

Это может установить выпадающий фон SearchAutoComplete для Light