Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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
Android 文本的颤振多行_Android_Flutter_Flutter Layout - Fatal编程技术网

Android 文本的颤振多行

Android 文本的颤振多行,android,flutter,flutter-layout,Android,Flutter,Flutter Layout,我所需要的是我的文本是多行的。我给出了maxLines的属性,但由于下一个不是第二行,所以它仍然在右侧出现RenderFlex溢出错误 Align( alignment: Alignment.bottomCenter, child: new ButtonBar( alignment: MainAxisAlignment.center, children: <Widget>[ Padding(

我所需要的是我的文本是多行的。我给出了
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,
            ),
          )
        ],
      ),
    )
Align(对齐:alignment.bottomCenter,
孩子:新纽扣吧(
对齐:MainAxisAlignment.center,
儿童:[
填充物(
填充:所有边缘设置(20.0),
儿童:新文本(
“这是一个非常大的文本!!!”,textDirection:textDirection.ltr,
样式:新文本样式(fontSize:20.0,颜色:Colors.white),
maxLines:2,
),
)
],
),
)

我想你忘了添加
溢出
类型

您可以使用以下内容:

Text(
     "TOP ADDED",
     textAlign: TextAlign.justify,
     overflow: TextOverflow.ellipsis,
     style: TextStyle(fontSize: 18.0),
     maxLines: 2,)

可能尝试使用
文本字段

new TextField(
  keyboardType: TextInputType.multiline,
  maxLines: 2,
)
简短回答

多行文本所需要的就是您的
text()
widgets的宽度受到父窗口小部件的限制。例如:

容器(
宽度:150,
子:文本(
“这段文字非常非常非常非常非常非常非常长”,
),
),
长答案

最低限度的工作示例+说明:

导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
home:Scaffold(//文本小部件,多行或非多行,需要小部件树上某个地方的Scaffold小部件。
body:Row(//帮助显示子窗口小部件列表的窗口小部件是“罪魁祸首”,它们使您的文本窗口小部件不知道最大宽度是多少。在OP的示例中,它是ButtonBar窗口小部件。
儿童:[
货柜(
宽度:100,//这有助于文本小部件再次了解最大宽度!如果要使用所有剩余空间,还可以选择使用扩展小部件而不是容器小部件。
child:Center(//我添加这个小部件是为了表明宽度限制小部件不需要是直接的父项。
子:文本(
“这段文字非常非常非常非常非常非常非常长”,
),
),
),
],
),
),
);
}
}
额外的

您还提到了
maxlines
。此属性限制了 最大行数。如果这是您想要的,我建议您也使用
overflow
属性

容器(
宽度:100,
子:文本(
“这段文字非常非常非常非常非常非常非常长”,
maxLines:2,
溢出:TextOverflow.省略号,
),
),
试试这个:

Expanded(            
    child: Text(
      'a long text',
      overflow: TextOverflow.clip,
    ),
),
在我的实现中,我把它放在一行中,并在每一侧用大小的方框包围,这样我的元素之间就有了一些空间,为什么要使用扩展的呢?你可能会问,它是用来占据尽可能多的空间,这样文本在纵向或横向模式下看起来会很好

下面是一个完整的示例,说明如何使其在垂直方向而不仅仅是水平方向上做出反应:

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,
          ),
        ],
      ),
    ),
  ),
)
卡(
孩子:InkWell(
onTap:(){},
孩子:填充(
填充:常数边集全部(8.0),
孩子:排(
儿童:[
大小盒子(
高度:70,//默认值\最小高度
),
容器(
身高:44,
宽度:44,
装饰:盒子装饰(
颜色:颜色,蓝色,
borderRadius:borderRadius.all(半径.圆形(22)),
),
大小盒子(
宽度:15,
),
扩大(
子:文本(
“很长的标题”,
溢出:TextOverflow.clip,
),
),
大小盒子(
宽度:10,
),
正文(
'value',//卡片末尾的其他文字或图标
),
大小盒子(
宽度:30,
),
],
),
),
),
)

只需将您的文本小部件包装为展开的,如下所示

    Expanded(
      child: Text('data', maxLines: 4,
        overflow: TextOverflow.ellipsis,
        textDirection: TextDirection.rtl,
        textAlign: TextAlign.justify,),
    ),
你可以使用这个技巧。 文本(“这是非常大的文本”),
只要把一个文本用三个单引号括起来,flatter就会根据文本的长度来设置文本的格式。无需使用最大行数和文本字段。

使用带列的扩展小部件来实现多行文本

Expanded(child: 
 Column(crossAxisAlignment: CrossAxisAlignment.start ,
 children: [
            Text(food.title),
            Text(food.price)
           ]
))

处理此问题的最佳方法:

Expanded(
child: Text(document['content'],
textAlign: TextAlign.start,
overflow: TextOverflow.ellipsis,
maxLines: 20,
))

只需将文本小部件包装成灵活的文本。因为它只使用它需要的空间。 在maxLines之后,它只是切换到省略号

如果想要无限行,只需删除
maxLines
属性。在Flexible的帮助下,它使用了widget需要的空间


我已经通过删除ButtonBar Childwrapp来修复了这个问题,将你的文本小部件包装在一个灵活的或扩展的小部件中。这个解释非常好:精确、简洁、正确。我希望我们有这样风格的官方颤振文档(指南/指南)。如果我使用TextOverFlow.省略号并使用SingleChildScrollView包装文本小部件,文本不会滚动。但是如果我删除TextOverFlow.省略号,文本将按预期滚动。是否可以使用TextOverFlow.ellipsis和SingleChildScrollView?使用约束的更好方法
Flexible(
  child: Text('Long Text', maxLines: 3,
    overflow: TextOverflow.ellipsis,
    textAlign: TextAlign.justify,
  ),
),