Dart 如何使用文本小部件设置多行文本?
我试图以多行显示文本,我的意思是: “我是一个文本 我在这里结束“ 当我尝试这样做时,我看到一个栏上写着“右溢出443像素”。 我有这样的UI结构:Dart 如何使用文本小部件设置多行文本?,dart,flutter,Dart,Flutter,我试图以多行显示文本,我的意思是: “我是一个文本 我在这里结束“ 当我尝试这样做时,我看到一个栏上写着“右溢出443像素”。 我有这样的UI结构: @override Widget build(BuildContext context) { return Card( child: Scaffold( body: Row( mainAxisSize: MainAxisSize.min, childre
@override
Widget build(BuildContext context) {
return Card(
child: Scaffold(
body: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Column(
children: <Widget>[
Container(
padding: EdgeInsets.all(15.0),
child: Image.asset('images/place.png'),
)
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
padding: EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 15.0),
child: Text(
_placeCard.description,
style: TextStyle(),
softWrap: true
)
)
],
),
],
),
)
);
}
@覆盖
小部件构建(构建上下文){
回程卡(
孩子:脚手架(
正文:世界其他地区(
mainAxisSize:mainAxisSize.min,
儿童:[
纵队(
儿童:[
容器(
填充:所有边缘设置(15.0),
子级:Image.asset('images/place.png'),
)
],
),
纵队(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
填充:来自LTRB(0.0,0.0,0.0,15.0)的边缘设置,
子:文本(
_placeCard.description,
样式:TextStyle(),
软包装:真的
)
)
],
),
],
),
)
);
}
Where _placeCard.description类似于:“16世纪,一个不知名的印刷商拿起一个打印盘,将其打印到”
有人能帮我或给我一些反馈吗?使用
灵活的小部件包装文本小部件
像
下面链接中的一个简单示例:
更新:
上面的解决方案包装了文本
小部件,但在问题代码片段中,问题是您在一行中使用了两个列
s,并且没有添加约束。因此,使用灵活的小部件包装这两个列
小部件是一个简单的解决方案
如下图所示
Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Flexible(
child: Column(
//...
),
),
Flexible(
child: Column(
//...
),
),
],
),
行(
mainAxisSize:mainAxisSize.min,
儿童:[
灵活的(
子:列(
//...
),
),
灵活的(
子:列(
//...
),
),
],
),
尝试将文本小部件包装在扩展类中,并设置其弹性系数。它将强制文本适应容器
Card(
color: kBoxColor,
child: Row(
children: [
Icon(Icons.description),
SizedBox(width:20.0),
Expanded(
flex: 30,
child: Text(
// Extremely long text,
style: kAnsTextStyle,
),
),
],
),
),
如果你需要这个容器,在它周围使用它。基本上,Flexible必须是Column或row的直接后代。我尝试过使用Flexible,它抛出了一个异常“pParent Flexible widgets必须是Flexible的不正确使用”,它是关于填充的,所以,我删除了它,但我得到了相同的结果,文本没有像容器父对象那样灵活使用多行,我遇到了同样的问题。可能与父节点有关吗?@JosephArriaza你可以参考我给你的链接,我提供的代码片段应该可以工作我认为我得到了它,我更改了第三个节点,第一行,我在那里使用了Table,创建了一个TableRow,它就是这样工作的
Card(
color: kBoxColor,
child: Row(
children: [
Icon(Icons.description),
SizedBox(width:20.0),
Expanded(
flex: 30,
child: Text(
// Extremely long text,
style: kAnsTextStyle,
),
),
],
),
),