15
votes

TextAllCaps dans le widget Text () de Flutter?

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?


8 commentaires

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é Text ne le permet pas, mais il existe TextField aka EditText dans 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.


4 Réponses :


1
votes

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)}';
}


3 commentaires

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.



-1
votes

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".


0 commentaires

-1
votes

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();
}


1 commentaires

La question demandait de mettre en majuscule le mot entier et pas seulement la première lettre.



-1
votes

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"))


0 commentaires