Flutter 文本小部件软包装在Flatter中的嵌套行-列-行中不工作

Flutter 文本小部件软包装在Flatter中的嵌套行-列-行中不工作,flutter,flutter-layout,Flutter,Flutter Layout,我试图在blow代码中包装文本“非常长的文本,理想情况下应该是软扭曲”。尝试使用灵活和扩展,但无效 让软包装在嵌套的行-列场景中工作变得越来越困难:( 导入“包装:颤振/材料.省道”; 导入“包:样本/模型/奖励.dart”; 类RewardDetailsView扩展了无状态小部件{ 最终奖励(u奖励);; 奖励详情视图(此为奖励); @凌驾 小部件构建(构建上下文){ 返回脚手架( appBar:appBar( 海拔:0, ), 主体:容器( 子:SingleChildScrollView(

我试图在blow代码中包装文本“非常长的文本,理想情况下应该是软扭曲”。尝试使用
灵活
扩展
,但无效

软包装
在嵌套的行-列场景中工作变得越来越困难:(

导入“包装:颤振/材料.省道”;
导入“包:样本/模型/奖励.dart”;
类RewardDetailsView扩展了无状态小部件{
最终奖励(u奖励);;
奖励详情视图(此为奖励);
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
海拔:0,
),
主体:容器(
子:SingleChildScrollView(
填充:所有边缘设置(16.0),
子:列(
儿童:[
划船(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
图标(图标、壁纸),
尺寸箱(宽度:16.0),
纵队(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
"利益",,
样式:TextStyle(
字体大小:14.0,
fontWeight:fontWeight.w600,
颜色:颜色。灰色[600],
),
),
划船(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
填充物(
填充:仅限常量边集(顶部:4.0),
子:图标(
Icons.arrow_right,
尺寸:10.0,
),
),
尺寸箱(宽度:8.0),
正文(
“非常长的文本,理想情况下应该是软翘曲”,
软包装:是的,
),
],
),
划船(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
填充物(
填充:仅限常量边集(顶部:4.0),
子:图标(
Icons.arrow_right,
尺寸:10.0,
),
),
尺寸箱(宽度:8.0),
正文(
“非常长的文本,理想情况下应该是软翘曲”,
软包装:是的,
),
],
),
],
),
],
),
],
),
),
),
);
}
}
下面是代码的输出。如果我在
文本
小部件周围添加Flexible,它将从屏幕上消失


您正在小部件树中使用嵌套行。在这种情况下,使用
扩展的
小部件包装小部件将不起作用,因为如果父元素是
小部件,则框架无法为其布局宽度

下面是一个基于您的示例的工作代码示例

  class RewardDetailsView extends StatelessWidget {
  final dynamic _reward = 'asdfasdfsd';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
      ),
      body: Container(
        child: SingleChildScrollView(
          padding: EdgeInsets.all(16.0),
          child: Column(
            children: <Widget>[
              Row(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Icon(Icons.wallpaper),
                  SizedBox(width: 16.0),
                  Expanded(  // Wrap this column inside an expanded widget so that framework allocates max width for this column inside this row
                      child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      Text(
                        'Benefits',
                        style: TextStyle(
                          fontSize: 14.0,
                          fontWeight: FontWeight.w600,
                          color: Colors.grey[600],
                        ),
                      ),
                      Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: <Widget>[
                          Padding(
                            padding: const EdgeInsets.only(top: 4.0),
                            child: Icon(
                              Icons.arrow_right,
                              size: 10.0,
                            ),
                          ),
                          SizedBox(width: 8.0),
                          Expanded( // Then wrap your text widget with expanded
                              child: Text(
                                'Awesome somthing very long text which should ideally soft warp lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorm ipsum',
                                softWrap: true,
                              )),
                        ],
                      ),
                      Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: <Widget>[
                          Padding(
                            padding: const EdgeInsets.only(top: 4.0),
                            child: Icon(
                              Icons.arrow_right,
                              size: 10.0,
                            ),
                          ),
                          SizedBox(width: 8.0),
                          Text(
                            'Awesome somthing very long text which should ideally soft warp',
                            softWrap: true,
                          ),
                        ],
                      ),
                    ],
                  )),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}
class RewardDetailsView扩展了无状态小部件{
最终动态_奖励='asdfasdfsd';
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
海拔:0,
),
主体:容器(
子:SingleChildScrollView(
填充:所有边缘设置(16.0),
子:列(
儿童:[
划船(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
图标(图标、壁纸),
尺寸箱(宽度:16.0),
Expanded(//将此列包装在扩展的小部件中,以便框架为此行中的此列分配最大宽度
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
"利益",,
样式:TextStyle(
字体大小:14.0,
fontWeight:fontWeight.w600,
颜色:颜色。灰色[600],
),
),
划船(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
填充物(
填充:仅限常量边集(顶部:4.0),
子:图标(
Icons.arrow_right,
尺寸:10.0,
),
),
尺寸箱(宽度:8.0),
Expanded(//然后用Expanded包装文本小部件
子:文本(
“令人敬畏的悲伤非常长的文本,理想情况下应软翘曲lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum”,
软包装:是的,
)),
],
),
划船(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
填充物(
填充:仅限常量边集(顶部:4.0),
子:图标(
Icons.arrow_right,
尺寸:10.0,
),
  class RewardDetailsView extends StatelessWidget {
  final dynamic _reward = 'asdfasdfsd';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
      ),
      body: Container(
        child: SingleChildScrollView(
          padding: EdgeInsets.all(16.0),
          child: Column(
            children: <Widget>[
              Row(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Icon(Icons.wallpaper),
                  SizedBox(width: 16.0),
                  Expanded(  // Wrap this column inside an expanded widget so that framework allocates max width for this column inside this row
                      child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: <Widget>[
                      Text(
                        'Benefits',
                        style: TextStyle(
                          fontSize: 14.0,
                          fontWeight: FontWeight.w600,
                          color: Colors.grey[600],
                        ),
                      ),
                      Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: <Widget>[
                          Padding(
                            padding: const EdgeInsets.only(top: 4.0),
                            child: Icon(
                              Icons.arrow_right,
                              size: 10.0,
                            ),
                          ),
                          SizedBox(width: 8.0),
                          Expanded( // Then wrap your text widget with expanded
                              child: Text(
                                'Awesome somthing very long text which should ideally soft warp lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorm ipsum',
                                softWrap: true,
                              )),
                        ],
                      ),
                      Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: <Widget>[
                          Padding(
                            padding: const EdgeInsets.only(top: 4.0),
                            child: Icon(
                              Icons.arrow_right,
                              size: 10.0,
                            ),
                          ),
                          SizedBox(width: 8.0),
                          Text(
                            'Awesome somthing very long text which should ideally soft warp',
                            softWrap: true,
                          ),
                        ],
                      ),
                    ],
                  )),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}