web-dev-qa-db-fra.com

Flutter Multiline pour le texte

Tout ce dont j'ai besoin, c'est que mon texte soit multiligne. Donne la propriété de maxLines mais sa toujours obtenir RenderFlex erreur débordée à droite comme la prochaine ne va pas à la 2ème ligne,

      Align( alignment: Alignment.bottomCenter,
      child: new ButtonBar(
        alignment: MainAxisAlignment.center,
        children: <Widget>[
          Padding(
            padding: EdgeInsets.all(20.0),
            child: new Text(
              "This is a very bigggggggg text !!!",textDirection: TextDirection.ltr,
              style: new TextStyle(fontSize: 20.0, color: Colors.white),
              maxLines: 2,
            ),
          )
        ],
      ),
    )
9
Vivek C A

Assurez-vous que le widget parent limite la largeur de votre texte, puis utilisez le débordement et le nombre maximal de lignes, par exemple:

Container(
  width: 150,
  child: Text(
    "This text is very very very very very very very very very very very very very very very very very very very very very very very very very long",
    overflow: TextOverflow.Ellipsis,
    maxLines: 5,
  ),
),
12
Tom O

Je pense que vous avez oublié d'ajouter overflow type.

Vous pouvez utiliser quelque chose comme ceci:

Text(
     "TOP ADDED",
     textAlign: TextAlign.justify,
     overflow: TextOverflow.Ellipsis,
     style: TextStyle(fontSize: 18.0),
     maxLines: 2,)
4
Mohammed Mahmoud

essaye ça:

Expanded(            
    child: Text(
      'a long text,
      overflow: TextOverflow.clip,
    ),
),

dans ma mise en œuvre, je l'ai placé à l'intérieur d'une rangée et je l'ai entouré de boîtes de taille de chaque côté, de manière à laisser un peu d'espace entre mes éléments. Pourquoi utiliser élargi? bon en mode portrait ou paysage.

et voici un exemple complet sur la façon de le faire même réagir verticalement et pas seulement horizontalement:

Card(
  child: InkWell(
    onTap: (){},
    child: Padding(
      padding: const EdgeInsets.all(8.0),
      child: Row(
        children: <Widget>[
          SizedBox(
            height: 70, // default\minimum height
          ),
          Container(
            height: 44,
            width: 44,
            decoration: BoxDecoration(
                color: Colors.blue,
                borderRadius: BorderRadius.all(Radius.circular(22))),
          ),
          SizedBox(
            width: 15,
          ),
          Expanded(
            child: Text(
              'the very long title',
              overflow: TextOverflow.clip,
            ),
          ),
          SizedBox(
            width: 10,
          ),
          Text(
            'value', //some other text in the end of the card or maybe an icon instead
          ),
          SizedBox(
            width: 30,
          ),
        ],
      ),
    ),
  ),
)
3
Basel Abuhadrous

Peut-être essayez-vous d'utiliser TextField:

new TextField(
  keyboardType: TextInputType.multiline,
  maxLines: 2,
)
1
stt106

juste envelopper votre widget texte avec Dépendu comme ci-dessous,

 Expanded(
       child:  Text("data",maxLines:4,overflow:TextOverflow.Ellipsis,textDirection: TextDirection.rtl,textAlign: TextAlign.justify,),
     )
0
Kijacode