J'ai ce problème où j'utilise le thème Holo d'Android sur un projet de tablette. Cependant, j'ai un fragment à l'écran qui a un fond blanc. J'ajoute un EditText
composant sur ce fragment. J'ai essayé de remplacer le thème en définissant l'arrière-plan des ressources du thème Holo.Light. Cependant, mon curseur de texte (carat) reste blanc et donc invisible à l'écran (je peux le repérer faiblement dans le champ edittext ..).
Est-ce que quelqu'un sait comment utiliser EditText pour utiliser une couleur de curseur plus sombre? J'ai essayé de définir le style de l'EditText "@android:style/Widget.Holo.Light.EditText"
sans résultat positif.
target
> 3.2 dans votre manifeste, vous pouvez l'utiliser et il sera ignoré pour les versions inférieuresDans la mise en page
Ensuite, créez xml drawalble: color_cursor
Vous avez un curseur de couleur blanche sur la propriété EditText.
la source
Il semble que toutes les réponses tournent autour des buissons.
Dans votre
EditText
, utilisez la propriété:et ajoutez le drawable
black_cursor.xml
à vos ressources, comme suit:C'est également le moyen de créer des curseurs plus divers, si vous en avez besoin.
la source
Il y a une nouvelle façon de changer la couleur du curseur dans la dernière
Appcompact
v21Changez simplement
colorAccent
de style comme ceci:Appliquez ensuite ce style sur le thème ou les activités de votre application.
Mise à jour : cette méthode ne fonctionne que sur l'API 21+Mise à jour 2 : je ne suis pas sûr de la version minimale d'Android qu'elle peut fonctionner.
Testé par la version Android:
la source
colorAccent
change par exemple la ligne en bas d'unEditText
mais elle ne touche pas la couleur réelle du curseur. Oh, et il n'y a plus de "v21" bien sûr.J'ai trouvé la réponse :)
J'ai défini le style editText du thème sur:
Ensuite, j'ai utilisé le dessinable suivant pour définir le curseur:
"
"
android: textCursorDrawable est la clé ici.
la source
android:editTextStyle
, mais en le modifiant pour leeditTextStyle
résoudre. Voir stackoverflow.com/a/34010235/6744473Pour ceux qui ont besoin de définir la
EditText
couleur du curseur de manière dynamique, vous trouverez ci-dessous deux façons d'y parvenir.Créez d'abord votre curseur dessinable:
Définissez l'ID de ressource pouvant être dessiné par le curseur sur le dessin que vous avez créé (https://github.com/android/platform_frameworks_base/blob/kitkat-release/core/java/android/widget/TextView.java#L562-564">source)) :
Pour simplement changer la couleur du curseur par défaut dessinable, vous pouvez utiliser la méthode suivante:
la source
AppCompatEditText
l'a déjà faitsetSupportBackgroundTintList
, donc ne serait-il pas assez simple d'ajouter quelque chose commesetSupportCursorTintList
?Tard dans la soirée, voici ma réponse,
C'est pour les personnes qui ne cherchent pas à changer le
colorAccent
thème parent, mais qui veulent changer lesEditText
attributs!Exemple:
Maintenant, créez un drawable (
edit_text_background
) ajoutez un ressource xml pour l'arrière-plan! Vous pouvez personnaliser comme vous le souhaitez!Maintenant, comme vous avez défini ce style dans votre thème d'activité.
Exemple :
Dans votre activité, vous avez un thème, définissez-le sur ce
editText
thème personnalisé .la source
<item name="editTextStyle">@style/AppTheme.EditText</item> // inculude this
aucun effetandroid:editTextSteyle
, le bon attr esteditTextStyle
<item name="android:textCursorDrawable">@color/white</item>
ne fonctionne pasEnsuite, créez un xml drawalble:
color_cursor
la source
Pour moi, j'ai modifié à la fois l'AppTheme et une valeur colors.xml
Voici le colours.xml
J'ai retiré l'attribut android: textCursorDrawable à @null que j'ai placé dans le style editText. Lorsque j'ai essayé de l'utiliser, les couleurs ne changeaient pas.
la source
Wow, je suis vraiment en retard à cette fête, mais il y a eu une activité il y a 17 jours. Il semblerait que nous devions envisager de publier la version d'Android que nous utilisons pour une réponse.À partir de maintenant, cette réponse fonctionne avec Android 2.1 et supérieur. VALEURS / STYLES et ajoutez les lignes de code ci-dessous et votre curseur sera noir
Vous aurez besoin d'une ligne de code dans votre dossier RES / COLOR
Pourquoi poster si tard? Il pourrait être agréable d'envisager une forme de catégories pour le monstre à nombreuses têtes qu'Android est devenu!
la source
Voici la version programmatique setCursorDrawableColor () de @Jared Rummler adaptée pour fonctionner également sur Android 9 Pie.
la source
java.lang.NoSuchFieldException: No field mDrawableForCursor
sur Android 9.cela s'appelle
colorAccent
dans Android.allez dans res -> values -> styles.xml add
sinon existe.
la source
editcolor.xml
android:textCursorDrawable="@drawable/editcolor"
Dans le fichier xml, définissez le code de
edittext
couleur de la couleur d'arrière - planla source
La seule réponse valable devrait être de changer le thème de l'activité:
<item name="colorAccent">#000000</item>
Vous ne devriez pas utiliserandroid:textCursorDrawable
pour@null
parce que cela ne concerne que le curseur lui - même , mais pas la broche en dessous du curseur si vous souhaitez faire glisser ce curseur. La solution thématique est la plus sérieuse.la source
Une autre solution simple serait d'aller dans res> values> colors.xml dans votre dossier de projet et de modifier la valeur de l'accent de couleur à la couleur que vous préférez
Le code ci-dessus change votre curseur en noir.
la source
Accédez à styles.xml et modifiez l'accentuation des couleurs, ce qui influencera le curseur de la zone edittext
la source
C'est encore plus facile que ça.
Cela fonctionne dans ICS et au-delà. Je ne l'ai pas testé dans d'autres versions.
la source
voulez-vous une couleur spécifique, vous devez utiliser AppCompatEditText puis backround définir null
travaille pour moi
Voir cet essentiel
la source
Utilisez ceci
la source
Faites attention à votre colorAccent dans votre activité / fragment / dialogue actuel, défini dans Styles ...;) la couleur du curseur lui est liée.
la source
changer la couleur de colorAccent dans styles.xm, c'est simple
la source
Si vous utilisez le style et implémentez
remplacer sa valeur autre que couleur / blanc.
la source
vous pouvez utiliser le code ci-dessous dans la mise en page
la source
Après avoir passé beaucoup de temps à essayer toutes ces techniques dans une boîte de dialogue, j'ai finalement eu cette idée: attacher le thème à la boîte de dialogue elle-même et non à TextInputLayout.
à l'intérieur onCreate:
public class myDialog étend Dialog {
à votre santé :)
la source