J'essaie de créer une ligne dans laquelle le texte central a une taille maximale, et si le contenu du texte est trop grand, il s'adapte à la taille.
J'insère la TextOverflow.ellipsis
propriété pour raccourcir le texte et insérer les points triples ...
mais cela ne fonctionne pas.
main.dart
import 'package:flutter/material.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) => new Scaffold(
appBar: new AppBar(
backgroundColor: new Color(0xFF26C6DA),
),
body: new ListView (
children: <Widget>[
new Card(
child: new Container(
padding: new EdgeInsets.symmetric(horizontal: 16.0, vertical: 18.0),
child: new Row(
children: <Widget>[
new Container(
padding: new EdgeInsets.only(right: 24.0),
child: new CircleAvatar(
backgroundColor: new Color(0xFFF5F5F5),
radius: 16.0,
)
),
new Container(
padding: new EdgeInsets.only(right: 13.0),
child: new Text(
'Text lar...',
overflow: TextOverflow.ellipsis,
style: new TextStyle(
fontSize: 13.0,
fontFamily: 'Roboto',
color: new Color(0xFF212121),
fontWeight: FontWeight.bold,
),
),
),
new Container(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
new Row(
children: <Widget>[
new Text(
'Bill ',
style: new TextStyle(
fontSize: 12.0,
fontFamily: 'Roboto',
color: new Color(0xFF9E9E9E)
),
),
new Text(
'\$ -999.999.999,95',
style: new TextStyle(
fontSize: 14.0,
fontFamily: 'Roboto',
color: new Color(0xFF212121)
),
),
],
),
new Row(
children: <Widget>[
new Text(
'Limit ',
style: new TextStyle(
fontSize: 12.0,
fontFamily: 'Roboto',
color: new Color(0xFF9E9E9E)
),
),
new Text(
'R\$ 900.000.000,95',
style: new TextStyle(
fontSize: 14.0,
fontFamily: 'Roboto',
color: new Color(0xFF9E9E9E)
),
),
],
),
]
)
)
],
),
)
),
]
)
);
}
résultat:
attendu:
flutter
dart
flutter-layout
rafaelcb21
la source
la source
Utiliser les ellipses
Utilisation de fondu
Utilisation du clip
Remarque:
Si vous utilisez
Text
intérieur de aRow
, vous pouvez mettre ci-dessus à l'Text
intérieurExpanded
comme:la source
softWrap: false
est exactement ce dont j'avais besoin, merci!Vous pouvez utiliser ce code extrait pour afficher du texte avec des points de suspension
la source
Tu peux le faire comme ça
la source
d'abord, enveloppez votre
Row
ouColumn
dans un widgetFlexible
ouExpanded
puisla source
Une façon de corriger un débordement d'un widget texte dans une ligne si, par exemple, un message de discussion peut être une très longue ligne. Vous pouvez créer un conteneur et un BoxConstraint avec un maxWidth dedans.
la source
L'emballage dont les éléments enfants sont dans une ligne ou une colonne, veuillez envelopper votre colonne ou ligne est nouveau Flexible ();
https://github.com/flutter/flutter/issues/4128
la source
Enveloppez simplement dans un widget qui peut prendre une largeur spécifique pour qu'il fonctionne ou il prendra la largeur du conteneur parent.
la source
Je pense que le conteneur parent doit recevoir un maxWidth de la taille appropriée. Il semble que la zone de texte remplisse l'espace donné ci-dessus.
la source
Selon votre situation, je pense que c'est la meilleure approche ci-dessous.
la source
Si vous placez simplement du texte comme enfant (s) d'une colonne, c'est le moyen le plus simple pour que le texte soit automatiquement enveloppé. En supposant que vous n'ayez rien de plus compliqué. Dans ces cas, je pense que vous créeriez votre conteneur de la taille que vous voulez et mettrez une autre colonne à l'intérieur, puis votre texte. Cela semble bien fonctionner. Les conteneurs veulent réduire la taille de leur contenu, ce qui semble naturellement entrer en conflit avec l'emballage, qui nécessite plus d'efforts.
la source
Il y a beaucoup de réponses mais Will un peu plus de l'observation.
1. clip
Découpez le texte qui déborde pour corriger son conteneur.
Production:
2. fondu
Fondu le texte qui déborde en transparent.
Production:
3. ellipse
Utilisez des points de suspension pour indiquer que le texte a débordé.
Production:
4. visible
Rendre le texte débordant en dehors de son conteneur.
Production:
la source
Essayer:
Cela montrera
OVER FLOW
. S'il y a un débordement, il sera traité.la source