Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何使用文本小部件设置多行文本?_Dart_Flutter - Fatal编程技术网

Dart 如何使用文本小部件设置多行文本?

Dart 如何使用文本小部件设置多行文本?,dart,flutter,Dart,Flutter,我试图以多行显示文本,我的意思是: “我是一个文本 我在这里结束“ 当我尝试这样做时,我看到一个栏上写着“右溢出443像素”。 我有这样的UI结构: @override Widget build(BuildContext context) { return Card( child: Scaffold( body: Row( mainAxisSize: MainAxisSize.min, childre

我试图以多行显示文本,我的意思是:

“我是一个文本

我在这里结束“

当我尝试这样做时,我看到一个栏上写着“右溢出443像素”。 我有这样的UI结构:

@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,
                ),
              ),
            ],
          ),
        ),