Changement EditText couleur de la ligne de fond avec appcompat v7

? Laurent @ | Original: StackOverFlow

Je utilise appcompat v7 pour obtenir le look cohérent sur Android 5 et moins . Il fonctionne plutôt bien . Cependant, je ne peux pas comprendre comment changer la couleur de la ligne de fond et la couleur d'accent pour EditTexts . Est-il possible?

Je ai essayé de définir une coutume «____» ( cf. ci-dessous) mais je ne ai réussi à changer la couleur de fond ou la couleur du texte, mais pas la ligne de fond, ni la couleur d'accent . Y at-il une valeur de propriété spécifique à utiliser ? dois-je utiliser une image personnalisée étirable à travers le android:editTextStyle propriété? est-il pas possible de spécifier une couleur dans hexa ?

android:background

Selon l'API Android 21 sources, EditTexts avec la conception du matériel semblent utiliser «____» et «____» . Par conséquent, je ai essayé de passer outre ces propriétés dans la définition du style précédent, mais il n'a aucun effet . Probablement appcompat ne l'utilise pas . Malheureusement, je ne peux pas trouver les sources de la dernière version de appcompat avec la conception du matériel .



Top 5 Respuesta

1Peter @

Une solution rapide pour votre problème, ce est de regarder dans yourappspackage / build / intermédiaires / explosé - aar / com.android.support / / appcompat - v7 RES / étirable / pour abc_edit_text_material.xml et copiez ce fichier xml dans votre dossier étirable . Ensuite, vous pouvez changer la couleur des fichiers de patch neuf de l'intérieur de ce sélecteur, afin de correspondre à vos préférences .



2Laurent @

Enfin, je ai trouvé la solution . Elle consiste simplement à remplacer la valeur pour <style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:editTextStyle">@style/Widget.App.EditText</item> </style> <style name="Widget.App.EditText" parent="Widget.AppCompat.EditText"> ??? </style> , colorControlActivated et colorControlNormal dans votre définition de thème de l'application et non pas votre style de edittext . Alors, pensez à utiliser ce thème pour ne importe quelle activité que vous désirez. Voici un exemple :

colorControlActivated
3TanmayP @

La réponse acceptée est un peu plus par base chose de style, mais la chose la plus efficace de le faire est d'ajouter l'attribut colorAccent dans votre style de AppTheme comme ceci:

colorControlHighlight

L'attribut colorAccent est utilisé pour teinter widget, tout au long de l'application et devrait donc être utilisé pour la cohérence

4hordurh @

Je me sentais comme ce nécessaire une réponse au cas où quelqu'un voulait changer un seul edittext . Je le fais comme ceci:

colorControlNormal