2016-11-14 5 views
0

Мне нужно изменить стиль предложений SearchView на тему AppCompat.Light (т. Е. Серый текст на белом фоне). Но я повторил много вариантов, и никто не изменил стиль предложений SearchView.
ScreenshotНевозможно изменить стиль предложений SearchView в Android

Моя раскладка:

<android.support.design.widget.AppBarLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:theme="@style/Widget.AppTheme.Toolbar" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

Стили:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/primary</item> 
     <item name="colorPrimaryDark">@color/primary_dark</item> 
     <item name="colorAccent">@color/accent</item> 
    </style> 

    <style name="AppTheme.NoActionBarTrans"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

    <style name="Widget.AppTheme.Toolbar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse"/> 

</resources> 

Тема приложение является AppTheme, тема деятельность AppTheme.NoActionBarTrans. Что я делаю неправильно? Я попытался объявить стиль SearchView, но он просто игнорирует этот стиль.

ответ

2

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

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 (e.g. from xml) 
autoComplete.setDropDownBackgroundResource(R.drawable.drop_down_bg); 
+0

Спасибо! Хотя, я хочу знать все, как это сделать, используя стили. –