Android SearchView不应用样式

时间:2018-01-14 14:45:36

标签: android android-studio colors styles searchview

我添加到我的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>

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

enter image description here enter image description here

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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