3
votes

Impossible de changer la couleur du curseur et de la bulle pour Material TextInputEditText

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.

Fichiers ici

Vous pouvez le voir dans cette image


4 commentaires

Changez votre couleur d'accent dans colors.xml


Pratik Butani je l'ai dit ci-dessus, ça ne marche pas


Placez votre fichier xml avec style.xml


Ce lien contient des fichiers


3 Réponses :


0
votes

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


1 commentaires

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!



12
votes

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>


1 commentaires

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.



0
votes

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>


0 commentaires