Просмотр и выпадающий список поиска и выпадающего списка в панели действий

В моем приложении у меня есть поиск, в котором отображаются поисковые предложения. Я хочу, чтобы выпадающий список / прядильщик и текст были определенного цвета. В настоящее время единственным изменением, которое я смог сделать, является цвет текста введенного текста через следующее:

<style name="MyApp.AutoCompleteTextView" parent="Widget.AppCompat.Light.AutoCompleteTextView"> <item name="android:textColor">@color/white</item> <item name="android:textCursorDrawable">@null</item> <item name="android:background">@color/myBackgroundColor</item> </style> 

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

Вот как он выглядит в настоящее время

Я хотел бы знать, как я могу изменить параметры, такие как цвет searchHint, выпадающий фон и цвет текста с выпадающим цветом?

Я ориентирую API 19+

В вашем файле styles.xml установите для AppTheme следующее:

 <style name="AppTheme" parent="AppTheme.Base"> <!-- Customize your theme here. --> <item name="android:dropDownItemStyle">@style/myDropDownItemStyle</item> </style> <style name="myDropDownItemStyle" parent="Widget.AppCompat.DropDownItem.Spinner"> <item name="android:textColor">@color/secondary_text_default_material_light</item> </style> 

Это может изменить цвет текста в раскрывающемся списке. Попробуй.

Поэтому после большого поиска самое близкое решение, которое я могу найти, следующее: (благодаря ответу GZ95 !):

 SearchView searchView = new SearchView(context); LinearLayout linearLayout1 = (LinearLayout) searchView.getChildAt(0); LinearLayout linearLayout2 = (LinearLayout) linearLayout1.getChildAt(2); LinearLayout linearLayout3 = (LinearLayout) linearLayout2.getChildAt(1); AutoCompleteTextView autoComplete = (AutoCompleteTextView) linearLayout3.getChildAt(0); //Set the input text color autoComplete.setTextColor(Color.WHITE); // set the hint text color autoComplete.setHintTextColor(Color.WHITE); //Some drawable (eg from xml) autoComplete.setDropDownBackgroundResource(R.drawable.drop_down_bg); 

Это не самый элегантный, но он работал для меня. Единственный вопрос, который у меня есть, – это изменить цвет текста предлагаемого текста. Я рад услышать более оптимальные решения этой проблемы

Вы можете определить следующие стили в res / styles.xml, если вы используете android.support.v7.widget.SearchView.

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="autoCompleteTextViewStyle">@style/myAutoCompleteTextViewStyle</item> <item name="textAppearanceSearchResultTitle">@style/mySearchResult</item> </style> <style name="myAutoCompleteTextViewStyle" parent="Widget.AppCompat.Light.AutoCompleteTextView"> <item name="android:popupBackground">#ffffff</item> </style> <style name="mySearchResult" parent="TextAppearance.AppCompat.SearchResult.Title"> <item name="android:textColor">#000000</item> </style> 

Если вы используете SearchView по умолчанию, атрибуты должны быть «android: autoCompleteTextViewStyle» и «android: textAppearanceSearchResultTitle». Я написал сообщение, описывающее подробности об этом.

С помощью стилей вы меняете фон выпадающего меню и цвет текста элементов

 <!-- 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> 

Вы можете определить предложениеRowLayout в topic.xml:

 <resources> <style name="AppTheme" parent="AppTheme.Base"> <item name="searchViewStyle">@style/AppTheme.SearchView</item> </style> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/bluegrey_500</item> <item name="colorPrimaryDark">@color/bluegrey_900</item> <item name="colorAccent">@color/teal_500</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> </style> <style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView"> <!-- The layout for the search view. Be careful. --> <!--<item name="layout">...</item>--> <!-- Background for the search query section (eg EditText) --> <!--<item name="queryBackground">@color/bluegrey_400</item>--> <!-- Background for the actions section (eg voice, submit) --> <!--<item name="submitBackground">...</item>--> <!-- Close button icon --> <!--<item name="closeIcon">...</item>--> <!-- Search button icon --> <!--<item name="searchIcon">...</item>--> <!-- Go/commit button icon --> <!--<item name="goIcon">...</item>--> <!--Voice search button icon--> <!--<item name="voiceIcon">@drawable/abc_ic_voice_search_api_mtrl_alpha</item>--> <!-- Commit icon shown in the query suggestion row --> <!--<item name="commitIcon">...</item>--> <!-- Layout for query suggestion rows --> <item name="suggestionRowLayout">@layout/item_suggestion_place</item> </style>