Pourquoi mon texte du Bouton obligé pour TOUS les BOUCHONS sur Lollipop?
Dans mon application "Marée Maintenant WA" qui j'ai récemment testé la compatibilité de l'aide
la nouvelle Nexus 9 tablette (Lollipop - API 21).
Il écrit le texte de certains boutons. Cette application écrit le texte correctement en utilisant Android 2.3 et Android
4.0. I. e. mixte lettres majuscules et minuscules.
Quand même application est exécutée sur mon Nexus 9 toutes les lettres
dans le texte sont capitalisés.
FWIW mon manifeste contient la déclaration suivante:
uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"
Puis-je résoudre ce problème dans mon code ou est-ce un bug dans l'O. S.
grâce
- Pouvez-vous partager un code comment avez-vous mélangez les lettres majuscules et minuscules
- ils sont définis dans mon strings.xml comme <string nom="r1s1">Seattle</string>
- oui. 21. trop tôt pour le type de droit. Désolé
- Texte du bouton est tous les majuscules par défaut lors de l'utilisation du Matériel (ou DeviceDefault avec l'API de 21 ans et+) le thème. Cela fonctionne comme prévu.
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas d'idée de pourquoi ça se passe, mais il y a 3 trivial tente de faire:
Utilisation
android:textAllCaps="false"
dans votrelayout-v21
Modifier par programmation la méthode de transformation de la touche.
mButton.setTransformationMethod(null);
Vérifiez votre style pour Allcaps
Note:
public void setAllCaps(boolean allCaps)
,android:textAllCaps
sont disponible à partir de la version de l'API 14.<item name="android:textAllCaps">false</item>
dans ma définition de styleVoici ce que j'ai fait dans ma values/themes.xml
<item name="textAllCaps">false</item>
.buttonStyle
àandroid:buttonStyle
android:textAllCaps="false"
(je suis sous android studio 3.0)C'est réparable dans le code de l'application par le réglage du bouton TransformationMethod, par exemple
Jeu android:textAllCaps="false". Si vous utilisez un appcompat style, assurez-vous que textAllCaps vient avant le style. Sinon, le style de le remplacer. Par exemple:
ajouter cette ligne dans le style
c'est un travail .... juste dans votre code dans votre bas code d'ajouter celui-ci :
il est conseillé de désactiver les majuscules lettre U en essayant de type petit .
Sucette défaut livré avec "textAllCaps vrai", de sorte que vous avez à effectuer manuellement à faux
Ajouter android:textAllCaps="false" dans
<Button>
tag c'est tout.Il y a un moyen plus simple qui fonctionne pour tous les boutons, il suffit de changer l'apparence des boutons dans votre thème, essayez ceci:
dans values-21/styles.xml
PS: il est recommandé de suivre la conception de matériel de principes, vous devez vous présenter en majuscule le texte dans les Boutons, http://www.google.com/design/spec/components/buttons.html
À l'aide de l'android.de soutien.v7.widget de.AppCompatButton dans le fichier XML de mise en page qui vous permettra d'éviter d'avoir à le faire une mise en page-21 ou par programmation de changer quoi que ce soit. Naturellement, cela fonctionnera aussi avec AppCompat v7 bibliothèque.
Espère que cette aide.
Vous pouvez ajouter
android:textAllCaps="false"
pour le bouton.Le texte du bouton peut être transformé en majuscules par votre application thème qui s'applique à tous les boutons. Vérifier thèmes /styles les fichiers de définition de l'attribut
android:textAllCaps
.Dans Android Studio IDE, vous devez cliquer sur l'icône de Filtre pour afficher les experts propriétés. Ensuite, vous verrez la
textAllCaps
de la propriété. Cochez la case, puis décochez la case.Java:
Kotlin:
XML:
Styles:
Dans la mise en page:
Si vous êtes arrivés ici parce que votre facebook texte du bouton s'affiche en majuscules puis il suffit d'ajouter ce
android:textAllCaps="false"
dans votre fichier xml. Il a travaillé pour moi.OK, juste couru dans cette. Boutons en Sucette sortir toutes les majuscules ET la police réinitialise à la "normale". Mais dans mon cas (Android 5.02) il a travaillé dans une mise en page correctement, mais pas l'autre!?
Modification des Api n'a pas de travail.
Pour tous les casquettes nécessite min API 14 et la police encore réinitialise à la "normale".
C'est parce que l'Android Styles de Matériaux de forcer un changement aux styles si il n'est pas défini (c'est pourquoi il travaille dans l'un de ma mise en page et pas les autres car j'ai défini un style).
Donc, la solution facile est de définir un style dans le manifeste, pour chaque activité, ce qui dans mon cas était juste:
android:thème="@android:style/Thème.NoTitleBar.Fullscreen"
(espérons que cela aide quelqu'un, m'aurait sauvé un couple de heures la nuit dernière)
Si vous utilisez
appcompat-v7
, vous pouvez sous-classeAppCompatButton
etsetSupportAllCaps(false)
, puis utiliser cette classe pour tous vos boutons.Voir AppCompatButton#setSupportAllCaps(boolean) Android docs.
Par défaut, le Bouton en android fournit tous les bouchons de mot-clé. Si vous souhaitez que le texte du bouton pour être en minuscules ou des majuscules et des minuscules, vous pouvez désactiver
textAllCaps
indicateur à l'aide deandroid:textAllCaps="false"
Je ne sais pas pourquoi la réponse de @user1010160 obtenu la note de 0. Je l'ai donné +1 si j'avais assez de réputation.
Depuis mon application est conçue pour les API de moins de 14 ans et je ne veux pas ajouter de code de mon programme je n'ai pas trouvé de solution jusqu'à ce que j'ai lu sa réponse. Ce qu'il a dit était que, même si vous avez fait ce qui est nécessaire dans l'Application des styles, il ne fonctionnera pas, sauf si vous ajoutez une touche de style à votre activité et il vous définissez textAllCaps à false.
Il ne suffit pas d'avoir un style à l'activité (mon activité avait un style), parce que le style pourrait par défaut à la AllCaps de la propriété. Vous devez définir explicitement, dans l'activité aussi, que la valeur false à la propriété.
J'ai maintenant à la fois dans l'Application et dans l'Activité des parties du fichier manifest.