如何在Flutter中处理InputDecoration-> labelText中的长文本

时间:2018-07-04 05:26:56

标签: flutter flutter-layout

我在Flutter设置中有一个TextFormField,如下所示:

new TextFormField (
    decoration: new InputDecoration(
    labelText: questionString,
    labelStyle: new TextStyle(
      fontSize: 18.0,
      color: new Color(0xFF18776A),
    )
),

这将生成以下屏幕截图:

TextFormField with labelText

由于太长,文本自动在结尾处剪切。有没有办法调整字体大小以适合屏幕或使labelText扩展为两行?

2 个答案:

答案 0 :(得分:0)

您可以使用TextFormFields maxLines属性:

new TextFormField ( 
    maxLines: 4,
    decoration: new InputDecoration( 
        labelText: questionString, 
        labelStyle: new TextStyle( 
            fontSize: 18.0, 
            color: new Color(0xFF18776A), 
        ) 
 ),

答案 1 :(得分:0)

道歉,添加了一个老问题,但只是学习使自己扑朔迷离,偶然发现了一个类似的问题。

我的解决方法是使用hintText而不是labelText,并在其中明确添加\ n换行符。

类似

String questionString = 'This sample is very \n very very very long'
new TextFormField (
    decoration: new InputDecoration(
    hintText: questionString,
    hintStyle: new TextStyle(
      fontSize: 18.0,
      color: new Color(0xFF18776A),
    ) .   

),

我不喜欢这样,因为实际上很难对屏幕宽度进行编码。但这至少会给出多行提示文本。

当我尝试向labelText添加换行符时,由于labelText的下一行合并到实际输入字段中,因此事情变得很奇怪。也许如果我能找到一种方法在其中添加填充以防止这种情况,那会更好一些吗?