Comme nous avons la fonctionnalité android:textAllCaps="true" dans Textview d'Android, comment pouvons-nous donner cette même fonctionnalité dans Text () Widget de Flutter?
Je sais que Text('Abc'.toUpperCase()) est un moyen mais je ne veux pas le faire manuellement. Y a-t-il une propriété du widget Text () qui le convertit automatiquement ou un widget qui a une propriété similaire?
4 Réponses :
Utilisez la fonction suivante pour le premier mot en majuscules
Text(this.getCapitalizeString(str: listObj[position]);
Utilisation :
String getCapitalizeString({String str}) {
if (str.length <= 1) { return str.toUpperCase(); }
return '${str[0].toUpperCase()}${str.substring(1)}';
}
Il semble que OP a fourni la meilleure approche à ce jour dans sa question initiale: utilisez simplement Text('Abc'.toUpperCase())
Ce n'est pas ce que la question demandait: comment mettre le mot entier en majuscule.
semble, il met à jour la question.
Pour mettre en majuscule le texte comme ceci: "ceci n'est qu'un exemple" à ce "Ceci n'est qu'un exemple",
utilisez cette fonction:
firstCharacterUpper(String text) {
List arrayPieces = List();
String outPut = '';
text = 'this is only a example'; // This is not necessary, is only for the example. The text here is that one is passed in parameter.
text.split(' ').forEach((sepparetedWord) {
arrayPieces.add(sepparetedWord);
});
arrayPieces.forEach((word) {
word =
"${word[0].toString().toUpperCase()}${word.toString().substring(1)} ";
outPut += word;
});
return outPut;
}
OutPut: "Ceci n'est qu'un exemple".
juste pour simplifier la fonction des réponses avant
String getCapitalizeString(String str) {
String cRet = '';
str.split(' ').forEach((word) {
cRet += "${word[0].toUpperCase()}${word.substring(1).toLowerCase()} ";
});
return cRet.trim();
}
La question demandait de mettre en majuscule le mot entier et pas seulement la première lettre.
Ma solution est comme ceci:
Apple
et la méthode personnalisée est
String _capitalize(String value) {
return value.substring(0, 1).toUpperCase() +
value.substring(1, value.length);
}
Retour
Text(_capitalize("apple"))
Texte ('Wow'.toUpperCase ())
github.com/flutter/flutter/issues/22695
par cela, nous convertissons manuellement la chaîne en majuscules, y a-t-il une propriété de texte qui le convertit automatiquement ou un widget dont la propriété est similaire à Text ()?
Désolé
Textne le permet pas, mais il existeTextFieldakaEditTextdans Android, qui a la propriété de capitalisation.@CopsOnRoad merci de l'avoir partagé, mais cette réponse ne fonctionne pas.
Oui, ce n'est pas la réponse, je voulais juste vous faire savoir qu'il n'y a aucun moyen de le faire dans
Text.@CopsOnRoad merci pour l'effort.
@Eugene rien ne va pas Je trouve un moyen plus court et courant de créer un widget Text () commun pour tous.