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

问题描述 投票:1回答:2

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

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

这会生成以下屏幕截图:

TextFormField with labelText

由于篇幅太长,文本会自动剪切。有没有办法调整字体大小以适应屏幕或使labelText扩展为两行?

flutter flutter-layout
2个回答
1
投票

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

我的解决方法是使用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中添加换行符时,标签文本的较低行合并到实际的输入字段时,事情变得非常奇怪。也许如果我能找到一种方法来在某处添加填充以防止这种情况会更好一点?


0
投票

你可以使用TextFormFields maxLines财产:

new TextFormField ( 
    maxLines: 4,
    decoration: new InputDecoration( 
        labelText: questionString, 
        labelStyle: new TextStyle( 
            fontSize: 18.0, 
            color: new Color(0xFF18776A), 
        ) 
 ),
© www.soinside.com 2019 - 2024. All rights reserved.