it-swarm.com.de

Wie ändere ich die Farbe von SearchView-Elementen?

Ich möchte SearchView in meinem Projekt verwenden, habe jedoch ein Problem mit der Farbe der Elemente. Lassen Sie mich Ihnen zeigen: sein fragmentDialog, in dem ich mein SearchView habe You can see what I mean here

Ich brauche nicht, BG Farbe zu ändern. Das nächste Bild ist zum Beispiel. Ich möchte SearchView-Elemente ohne schwarzen Hintergrund sehen. The color of the elements is white

Ich habe es versucht

  • thema wechseln
  • stil ändern
  • farbton ändern

aber nichts funktioniert. Das Suchsymbol und weitere Elemente sind weiterhin weiß. Vielleicht verliere ich etwas? Kann ich das in XML machen? Bitte hilf mir.

13
Alex Smith

Sie müssen Android.support.v7.widget.SearchView verwenden

versuchen Sie es mit diesem Stil in Ihrer Suchansicht,

Vor dem Erweitern der Suchansicht ---> enter image description here

Nach dem Erweitern der Suchansicht --->

enter image description here

<Android.support.v7.widget.SearchView xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:id="@+id/search_view"
            style="@style/SearchViewStyle"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentEnd="true"
            Android:layout_centerVertical="true"
            Android:layout_gravity="end" />

<style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
    <!-- Gets rid of the search icon -->
    <item name="searchIcon">@drawable/ic_search</item>
    <!-- Gets rid of the "underline" in the text -->
    <item name="queryBackground">@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">@string/search_hint</item>
</style>
21
Bhavnik

In dieser Antwort gehe ich davon aus, dass SearchView in Toolbar eingefügt wird und AppTheme ein Kind von Theme.AppCompat.Light.NoActionBar Ist.

<style name="AppTheme.Toolbar" parent="AppTheme">
    <!--This line changes the color of text in Toolbar-->
    <item name="Android:textColorPrimary">@color/green</item>
    <!--This line changes the color of icons in toolbar (back, overflow menu icons)-->
    <item name="Android:textColorSecondary">@color/green</item>
</style>

Verwenden Sie nun den AppTheme.Toolbar Als Thema für Ihre Symbolleiste.

<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:theme="@style/AppTheme.Toolbar" />
34
int searchiconId = view.getContext().getResources().getIdentifier("Android:id/search_button",null,null);
ImageView imgView = (ImageView)findViewById(searchiconId);
Drawable whiteIcon = img.getDrawable();
whiteIcon.setTint(Color.RED); //Whatever color you want it to be
img.setImageDrawable(whiteIcon);
5
TheLastBorn

Versuchen Sie, diese Linien zum Stil hinzuzufügen.

Android:textColorPrimary ändert den Text, den der Benutzer in EditText eingibt. Android:textColorSecondary Ändert den Zurück-Pfeil, das Kreuz "Text entfernen" und das kleine Suchsymbol vor dem Hinweis.

<item name="Android:textColorPrimary">@color/white</item>
<item name="Android:textColorSecondary">@color/white</item>
4
Oleksandr Nos

Searchview, das mit der Support-Bibliothek geliefert wird, verfügt über Funktionen zum Ändern von Symbolen

<androidx.appcompat.widget.SearchView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            app:searchIcon="@drawable/ic_search"
            app:closeIcon="@drawable/ic_close_black"
            app:commitIcon=""
            app:goIcon=""
            app:searchHintIcon=""
            app:voiceIcon=""
    >
1
Praveena

Also, was war mein Problem. Ich habe Android.widget.SearchView anstelle von Android.support.v7.widget.SearchView verwendet. Ich habe SearchView geändert und nachdem die vorgeschlagene Lösung funktioniert hat.

Wenn jemand erklären kann, warum Stile und andere Dinge nicht funktioniert haben oder mir einen Link geben kann, werde ich geschätzt.

1
Alex Smith

Sie können Ihre Suchansicht mit einem Kostümstil in "styles.xml" ändern:

<style name="AppSearchView" parent="Widget.AppCompat.SearchView" >
    <!-- Text Size -->
    <item name="Android:textSize">@dimen/textSizePrimary</item>
    <!-- Query Text Color -->
    <item name="Android:textColorPrimary">@color/textColorPrimary</item>
    <!-- Hint Color -->
    <item name="Android:textColorHint">@color/textColorDisabled</item>
    <!-- Icon Color -->
    <item name="Android:tint">@color/textColorPrimary</item>
</style>

verwenden Sie dann diesen Stil in Ihrer Suchansicht:

<Android.support.v7.widget.SearchView
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    ...
    app:theme="@style/AppSearchView" />
0
Armin