我需要的是多行文本。我正在赋予maxLines
的属性,但是它的右边仍然出现RenderFlex
的溢出错误,因为下一条不会转到第二行,
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,
),
)
],
),
)
答案 0 :(得分:4)
只需将文本小部件包装为扩展,如下所示
Expanded(
child: Text("data",maxLines:4,overflow:TextOverflow.ellipsis,textDirection: TextDirection.rtl,textAlign: TextAlign.justify,),
)
答案 1 :(得分:3)
尝试一下:
Expanded(
child: Text(
'a long text,
overflow: TextOverflow.clip,
),
),
在我的实现中,我将其放在一行中,并在每侧用大小框包围,以便在元素之间留出一定的空间,为什么您可能会问为什么使用expand,所以它占用了尽可能多的空间,因此文字在纵向或横向模式下看起来都不错。
这是一个完整的示例,说明如何使它甚至在垂直方向上(而不是在水平方向上)做出反应:
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,
),
],
),
),
),
)
答案 2 :(得分:2)
我认为您忘记添加overflow
类型。
您可以使用以下内容:
Text(
"TOP ADDED",
textAlign: TextAlign.justify,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 18.0),
maxLines: 2,)
答案 3 :(得分:2)
使用带有列的扩展小部件来实现多行文字。
Expanded(child:
Column(crossAxisAlignment: CrossAxisAlignment.start ,
children: [
Text(food.title),
Text(food.price)
]
))
答案 4 :(得分:1)
也许尝试使用TextField
:
new TextField(
keyboardType: TextInputType.multiline,
maxLines: 2,
)
答案 5 :(得分:1)
处理此问题的最佳方法:
Expanded(
child: Text(document['content'],
textAlign: TextAlign.start,
overflow: TextOverflow.ellipsis,
maxLines: 20,
))
答案 6 :(得分:1)
只需将文本小部件包装在 Flexible 中即可。因为它只使用它需要的空间。 在 maxLines 之后,它只是切到省略号。
<块引用>如果您想要无限行,只需删除 maxLines
属性。在Flexible的帮助下,它使用了widget需要的空间。
Flexible(
child: Text('Long Text', maxLines: 3,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.justify,
),
),
答案 7 :(得分:0)
(适用于Google员工) 另外,请知道父窗口小部件需要限制您的宽度,例如:
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,
),
),
答案 8 :(得分:-1)
您可以使用此技巧。 文字('''这是非常大的文字'''), 只需将文本用三个单引号引起来,然后flutter将根据其长度格式化文本。无需使用最大行数和文本字段。