Search code examples
androidsearchview

Theme for SearchView in ActionBar


I have a SearchView in an ActionBar.

This SearchView icon is black, and text is black too whereas my icon is white !

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/action_search"
    android:title="@string/menu_search"
    android:icon="@drawable/ic_search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always" />
</menu>

I would like my SearchView be white.


Solution

  • Here in menu.xml add,

        <item
    android:id="@+id/action_search"
    android:icon="@drawable/icon"
    android:title="Search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always"/>
    

    in style.xml you need to apply style like this

        <style name=”Theme.MyTheme” parent=”Theme.AppCompat”>
        <item name=”searchViewStyle”>@style/MySearchViewStyle</item>
    </style>
    <style name=”MySearchViewStyle” parent=”Widget.AppCompat.SearchView”>
        <!-- Background for the search query section (e.g. EditText) -->
        <item name="queryBackground">...</item>
        <!-- Background for the actions section (e.g. voice, submit) -->
        <item name="submitBackground">...</item>
        <!-- Close button icon -->
        <item name="closeIcon">...</item>
        <!-- Search button icon -->
        <item name="searchIcon">...</item>
        <!-- Go/commit button icon -->
        <item name="goIcon">...</item>
        <!-- Voice search button icon -->
        <item name="voiceIcon">...</item>
        <!-- Commit icon shown in the query suggestion row -->
        <item name="commitIcon">...</item>
        <!-- Layout for query suggestion rows -->
        <item name="suggestionRowLayout">...</item>
    </style>
    

    and finally in menifest file:

        <application...
    android:theme="@style/Theme.MyTheme" >
    

    Ref: Android appcompact library Hope this helped!