Je souhaite utiliser SearchView dans mon projet, mais j'ai un problème avec la couleur des éléments. Permettez-moi de vous montrer: son fragmentDialog où j'ai ma SearchView
Je n'ai pas besoin de changer la couleur bg. L'image suivante est par exemple. Je veux voir les éléments SearchView sans bg noir.
J'ai essayé de
mais rien ne fonctionne. L'icône de recherche et les éléments anoter sont toujours blancs. Peut-être que je perds quelque chose? Puis-je le faire en XML? Aidez-moi, s'il vous plaît.
Vous devez utiliser Android.support.v7.widget.SearchView
essayez avec ce style dans votre vue de recherche,
Avant d'étendre la vue de recherche --->
Après avoir étendu la vue de recherche --->
<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>
Dans cette réponse, je suppose que le SearchView
est ajouté à l'intérieur de Toolbar
et AppTheme
est un enfant de Theme.AppCompat.Light.NoActionBar
<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>
Utilisez maintenant le AppTheme.Toolbar
comme thème de votre barre d'outils.
<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" />
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);
Essayez d'ajouter ces lignes au style.
Android:textColorPrimary
modifie le texte saisi par l'utilisateur dans EditText. Android:textColorSecondary
change la flèche de retour, la croix "supprimer le texte" et la petite icône de recherche avant le conseil.
<item name="Android:textColorPrimary">@color/white</item>
<item name="Android:textColorSecondary">@color/white</item>
Searchview
qui vient avec la bibliothèque de support a des fonctionnalités pour changer les icônes
<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=""
>
Alors, quel était mon problème. J'ai utilisé Android.widget.SearchView au lieu d'Android.support.v7.widget.SearchView. J'ai changé SearchView et après que la solution proposée a commencé à fonctionner.
Si quelqu'un peut expliquer pourquoi les styles et différentes choses n'ont pas fonctionné ou s'il peut me donner un lien, je serai apprécié.
Vous pouvez modifier votre vue de recherche avec un style de costume dans `styles.xml ':
<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>
puis utilisez ce style dans votre vue de recherche:
<Android.support.v7.widget.SearchView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
...
app:theme="@style/AppSearchView" />