更改 AppCompat 的 SearchView colorAccent

Changing AppCompat's SearchView colorAccent

我知道之前有人问过这个话题,但大多数答案都提供了一个不是最新的程序化解决方案。

我在Toolbar里面有一个SearchView,我需要稍微修改一下它的外观,这是我的样式文件

<resources>
    <style name="Theme.XYZ" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#29abbd</item>
        <item name="colorPrimaryDark">#00838f</item>
        <item name="colorAccent">#29abbd</item>
        <item name="colorButtonNormal">#29abbd</item>
        <item name="android:windowBackground">@color/window_background</item>
        <item name="searchViewStyle">@style/Theme.XYZ.SearchView</item>
    </style>


    <style name="Theme.XYZ.SearchView" parent="Widget.AppCompat.Light.SearchView">
        <item name="closeIcon">@drawable/ic_launcher</item>
        <item name="colorAccent">#ffffff</item>
    </style>

</resources>

这不起作用,SearchView 没有分配自定义关闭图标,colorAccent 是主主题的颜色。

感谢您的帮助。

我在这里发布了我的解决方案,尽管它为 AutoCompleteTextView 而不是直接为 SearchView 定义了样式

<style name="Theme.XYZ" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#29abbd</item>
        <item name="colorPrimaryDark">#00838f</item>
        <item name="colorAccent">#29abbd</item>
        <item name="colorButtonNormal">#29abbd</item>
        <item name="android:windowBackground">@color/window_background</item>
        <item name="autoCompleteTextViewStyle">@style/XYZSearchView</item>


    </style>


    <style name="XYZSearchView" parent="Widget.AppCompat.Light.AutoCompleteTextView">
        <item name="android:textCursorDrawable">@drawable/white_cursor</item>
    </style>