如何在 Android 5.0+ 上设置 SearchView 的样式?
How to style SearchView on Android 5.0+?
我正在为 Android 5.0+ 创建应用程序,所以我正在使用 API 21+。
使用 android.support.v7.widget.SearchView 与 SearchView 相比有什么好处?
我可以使用 SearchView 还是必须使用 android.support.v7.widget.SearchView?
如何以这种方式设置 SearchView 的样式。我还需要在其他 Activity 中重用此样式。
我目前的风格:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/color_primary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColor">@color/white</item>
</style>
要更改搜索视图图标,请将其添加到您的 styles.xml 文件
<!--SearchViewStyle -->
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="searchIcon">@drawable/ic_search</item>
<item name="voiceIcon">@drawable/ic_search_voice</item>
<item name="closeIcon">@drawable/ic_search_close</item>
<item name="searchHintIcon">@drawable/ic_search</item>
</style>
然后通过将其作为项目添加到您的 AppTheme 样式中来使用它,如下所示:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/color_primary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColor">@color/white</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
</style>
要更改您的 searchView 文本和提示颜色,请将此项目添加到您的 AppTheme:
<!--SearchView query text color-->
<item name="android:textColorPrimary">@color/textColorPrimary</item>
<!--SearchView query hint text color-->
<item name="android:textColorHint">@color/textColorHint</item>
因此您的最终 styles.xml 文件将如下所示:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/color_primary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColor">@color/white</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
<!--SearchView query text color-->
<item name="android:textColorPrimary">@color/textColorPrimary</item>
<!--SearchView query hint text color-->
<item name="android:textColorHint">@color/textColorHint</item>
</style>
<!--SearchViewStyle -->
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="searchIcon">@drawable/ic_search</item>
<item name="voiceIcon">@drawable/ic_search_voice</item>
<item name="closeIcon">@drawable/ic_search_close</item>
<item name="searchHintIcon">@drawable/ic_search</item>
</style>
我正在为 Android 5.0+ 创建应用程序,所以我正在使用 API 21+。
使用 android.support.v7.widget.SearchView 与 SearchView 相比有什么好处?
我可以使用 SearchView 还是必须使用 android.support.v7.widget.SearchView?
如何以这种方式设置 SearchView 的样式。我还需要在其他 Activity 中重用此样式。
我目前的风格:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/color_primary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColor">@color/white</item>
</style>
要更改搜索视图图标,请将其添加到您的 styles.xml 文件
<!--SearchViewStyle --> <style name="SearchViewStyle" parent="Widget.AppCompat.SearchView"> <item name="searchIcon">@drawable/ic_search</item> <item name="voiceIcon">@drawable/ic_search_voice</item> <item name="closeIcon">@drawable/ic_search_close</item> <item name="searchHintIcon">@drawable/ic_search</item> </style>
然后通过将其作为项目添加到您的 AppTheme 样式中来使用它,如下所示:
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimaryDark">@color/color_primary</item> <item name="colorAccent">@color/color_accent</item> <item name="android:textColor">@color/white</item> <item name="searchViewStyle">@style/SearchViewStyle</item> </style>
要更改您的 searchView 文本和提示颜色,请将此项目添加到您的 AppTheme:
<!--SearchView query text color--> <item name="android:textColorPrimary">@color/textColorPrimary</item> <!--SearchView query hint text color--> <item name="android:textColorHint">@color/textColorHint</item>
因此您的最终 styles.xml 文件将如下所示:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/color_primary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColor">@color/white</item>
<item name="searchViewStyle">@style/SearchViewStyle</item>
<!--SearchView query text color-->
<item name="android:textColorPrimary">@color/textColorPrimary</item>
<!--SearchView query hint text color-->
<item name="android:textColorHint">@color/textColorHint</item>
</style>
<!--SearchViewStyle -->
<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
<item name="searchIcon">@drawable/ic_search</item>
<item name="voiceIcon">@drawable/ic_search_voice</item>
<item name="closeIcon">@drawable/ic_search_close</item>
<item name="searchHintIcon">@drawable/ic_search</item>
</style>