2014-12-25 68 views
1

我想自定義我的AppCompat主題(Base.Theme.AppCompat.Light.DarkActionBar)來更改搜索建議背景顏色和文本。
這就是我的風格文件:
android-錯誤自定義搜索建議AppCompat主題

<resources> 
    <!-- extend one of the Theme.AppCompat themes --> 
    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> 
     <!-- customize the color palette --> 
     <item name="colorPrimary">@color/material_blue_500</item> 
     <item name="colorPrimaryDark">@color/material_blue_700</item> 
     <item name="colorAccent">@color/material_blue_200</item> 
     <item name="android:windowBackground">@color/material_blue_200</item> 
     <item name="android:actionBarStyle">@style/ActionBar</item> 
     <item name="android:actionBarWidgetTheme">@style/ActionBarWidget</item> 
    </style> 

    <!-- Actionbar Theme --> 
    <style name="ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@color/material_blue_200</item> 
     <item name="android:icon">@drawable/ic_launcher</item> 
    </style> 

    <style name="ActionBarWidget" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- SearchView customization--> 
     <item name="searchViewSearchIcon">@drawable/ic_action_search</item> 
     <item name="searchViewCloseIcon">@drawable/ic_action_remove</item> 
     <item name="searchViewTextField">@drawable/ab_textfield_searchview</item> 
     <item name="searchViewAutoCompleteTextView">@style/AutoCompleteTextView</item> 
    </style> 

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

</resources> 

編譯後,我收到這樣的錯誤:
錯誤:(24 21)否資源發現匹配給定的名稱:ATTR 'searchViewAutoCompleteTextView' 。
錯誤:(22,21)找不到與給定名稱匹配的資源:attr'searchViewCloseIcon'。
錯誤:(21,21)找不到與給定名稱匹配的資源:attr'searchViewSearchIcon'。
錯誤:(23,21)找不到與給定名稱匹配的資源:attr'searchViewTextField'。
有什麼建議嗎?

回答

6

喜,由於程序兼容性V21,你應該將代碼改成這樣:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="searchViewStyle">@style/AppTheme.SearchView</item> 
</style> 

<style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView"> 
    <item name="searchIcon">@drawable/your_search_icon</item> 
    <item name="closeIcon">@drawable/your_close_icon</item> 
</style> 
+0

這一個是完美的答案。應該被接受。 – vidulaJ

0

相反searchViewTextField的,對於造型搜索查看EditText上使用Android:autoCompleteTextViewStyle的應用主要風格

<style name="AppTheme.Base" parent="Theme.AppCompat.Light"> 
    .... 
    <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextView</item> 

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