Как оформить SearchView на Android 5.0+? - PullRequest
0 голосов
/ 24 октября 2018

Я создаю приложение для Android 5.0+, поэтому я работаю с API 21+.

Каковы преимущества использования android.support.v7.widget.SearchView по сравнению с SearchView?

Могу ли я использовать SearchView или я должен использовать android.support.v7.widget.SearchView?

Как оформить SearchView таким образом.Мне также нужно повторно использовать этот стиль в других видах деятельности.

enter image description here

Мои текущие стили:

<!-- 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>

1 Ответ

0 голосов
/ 25 октября 2018

Чтобы изменить значки поиска, добавьте это в свой файл 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>
...