Android SearchView 未应用样式

Android SearchView Not Applying Style

我添加到 Activity(不在工具栏中)的 android.support.v7.widget.SearchView 似乎没有完全应用我创建的样式。

这是 SearchView 本身的代码,我在其中引用 AppTheme.SearchView 作为它应该应用的样式。

<android.support.v7.widget.SearchView
                android:id="@+id/search_dashboard"
                style="@style/AppTheme.SearchView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/color_primary"
                android:layout_below="@id/toolbar_dashboard"
                android:elevation="@dimen/toolbar_elevation" />

这是样式代码:

<style name="AppTheme.SearchView" parent="Widget.AppCompat.Light.SearchView">

    <item name="android:colorPrimary">@android:color/white</item>
    <item name="android:colorPrimaryDark">@android:color/white</item>
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
    <item name="android:textColor">@android:color/white</item>

    <!-- Gets rid of the search icon when the SearchView is expanded -->
    <item name="searchHintIcon">@null</item>
    <!-- The hint text that appears when the user has not typed anything -->
    <item name="queryHint">Test 1</item>
</style>

我正在尝试将图标和所有文本的颜色设置为白色。 当我执行该应用程序时,我得到了这个结果:

您可以看到我应用了 queryHint 样式,但它并没有改变颜色。 我认为使用的 editTextColor 在我的默认应用样式中定义为

<item name="android:textColorPrimary">@color/color_text_primary</item>

<color name="color_text_primary">#344d93</color>

如果我在特定样式中设置了其他颜色,怎么会出现这种情况?

对于自定义,您可以使用 android:theme="@style/AppTheme.SearchView" 或动态使用此代码 https://gist.github.com/jaredrummler/c408c9d897fd92d5d116