Je veux changer la couleur de la bulle et du curseur de Material TextInputEditText. J'ai essayé colorAccent, android: textCursorDrawable ceux-ci ne fonctionnent pas correctement.
3 Réponses :
Vous devez utiliser les attributs suivants:
<style name="AppTheme" parent="Theme.MaterialComponents.Light"> <item name="colorPrimary">#212121</item> <item name="colorPrimaryVariant">#000000</item> <item name="colorOnPrimary">#FFFFFF</item> <item name="colorSecondary">#2962FF</item> <item name="colorSecondaryVariant">#0039CB</item> <item name="colorOnSecondary">#FFFFFF</item> <item name="colorError">#F44336</item> <item name="colorOnError">#FFFFFF</item> <item name="colorSurface">#FFFFFF</item> <item name="colorOnSurface">#212121</item> <item name="android:colorBackground">@color/background</item> <item name="colorOnBackground">#212121</item> </style> <color name="background">#FAFAFA</color>
Pour en savoir plus sur: Configuration d'un thème de composants matériels pour Android
C'est juste une question de couleur primaire. Quand j'ai changé la couleur de colorPrimary et colorSecondary en bleu, cela s'est résolu. Merci de votre aide!
La couleur de l'attribut de matériau colorControlActivated fait la magie. Vous devez créer un style pour votre TextInputLayout.
Exemple:
<com.google.android.material.textfield.TextInputLayout android:id="@+id/lblObservaciones" android:theme="@style/TextInputLayoutAppearance" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="match_parent" android:layout_height="wrap_content" app:boxStrokeColor="@color/blue" app:hintTextAppearance="@style/TextAppearance.AppCompat.Medium" app:hintTextColor="@color/blue"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/comments" android:layout_width="match_parent" android:layout_height="100dp" android:gravity="top" android:inputType="textMultiLine" android:maxLength="200" /> </com.google.android.material.textfield.TextInputLayout>
Ensuite, vous devez appliquer ce style dans l'attribut theme du contrôle:
<style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout"> <item name="colorControlNormal">@color/white</item> <item name="colorControlActivated">@color/red</item> <item name="colorControlHighlight">@color/blue</item> </style>
Je vous remercie! La combinaison d'un thème ET d'un style est ce qui m'a fait. Pour que je puisse avoir la combinaison que je recherchais.
Il suffit d'appliquer colorControlActivated dans le thème de l'application (jour / nuit) et tous les Material TextInputEditField auront la couleur de curseur modifiée
<item name="android:colorControlActivated">@color/green</item>
Changez votre couleur d'accent dans colors.xml
Pratik Butani je l'ai dit ci-dessus, ça ne marche pas
Placez votre fichier
xml
avecstyle.xml
Ce lien contient des fichiers