如何使Text小部件将长文本换成多行?

时间:2018-05-21 14:20:22

标签: dart flutter

我正在使用Stepper小部件,并且我使用Text小部件作为标题参数。

我用于文本的字符串很长,我喜欢用多行包装文本。我怎么能这样做?

以下是我用来构建此代码的代码:

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Stepper(
          currentStep: currentStepIndex,
          onStepContinue: () => setState(() => currentStepIndex++),
          onStepTapped: (int index) => setState(() => currentStepIndex = index),
          steps: questions
              .map((String q) => Step(
                    title: Text(q),
                    content: QuestionWidget(),
                  ))
              .toList(),
        ),
      );

这是目前的样子: enter image description here

3 个答案:

答案 0 :(得分:5)

这可能不是最佳解决方案,但这是唯一适用于我的方法。

使用Container环绕Text小部件,并根据屏幕大小设置它的最大宽度。

屏幕大小 - 84似乎是避免溢出的最小值。我已在2台设备上测试过它并且工作正常。

steps: widget.questions
  .map(
    (String q) => Step(
      title: new Container(
        constraints: new BoxConstraints(
          maxWidth: MediaQuery.of(context).size.width - 84),
        child: Text(q),
      ),
      content: new Container(),
    ),
  )
  .toList(),

答案 1 :(得分:3)

如果您只想写多行,请使用flexible

Flexible (child: Text('Some text here'))

答案 2 :(得分:0)

这是softWrap功能

child: Text("text",softWrap: true,),