在flutter中设置文本文件的最小高度

时间:2019-12-17 07:27:08

标签: flutter

我在容器中有一个文本文件,并且我希望该文本文件支持多行,所以我不能达到容器的高度。但是在没有单词的情况下如何设置文本字段的默认高度? enter image description here enter image description here 我尝试了contentPadding,但无法正常工作。 这是我的代码:

TextField(
                              controller: _textEditingController,
                              decoration: InputDecoration(
                                hintText: "留下你的评论吧~",
                                contentPadding: EdgeInsets.only(left: getMyWidth(10), right: getMyWidth(10)),
                                fillColor: default_bg,
                                filled: true,
                                border: OutlineInputBorder(borderSide: BorderSide.none, borderRadius: BorderRadius.all(Radius.circular(getMyWidth(5)))),
                              ),
                              style: makeBlackStyle(),
                              keyboardType: TextInputType.multiline,
                              maxLines: null,
                              cursorColor: themeColor,
                              onChanged: (str) {
                                setState(() {
                                  inputStr = str;
                                });
                              },
                            )

所以,我的问题是:当没有单词时,如何设置文本字段的默认高度?我想降低文本文件的默认高度,并且需要支持mulitiline

6 个答案:

答案 0 :(得分:1)

您可以使用'minLines:2',它将为您提供您放置的行数的高度。 希望对您有所帮助。

答案 1 :(得分:0)

用户可以设置maxLines中的TextField来设置最大高度。设置maxLines仍将支持多行。

TextField(
maxLines: 5
)

答案 2 :(得分:0)

https://github.com/flutter/flutter/issues/27838

可接受的查询 使用-> contentPadding:

TextField(
decoration: InputDecoration(
contentPadding: EdgeInsets.all(8.0),//here  set your padding
https://github.com/flutter/flutter/issues/27838#issuecomment-507603179

new Container(
width:80.0
child:new TextField
)

答案 3 :(得分:0)

您可以使用以下内容,我也正在我的项目中使用以下内容。将TextField包装在容器中,然后更改容器本身的大小。然后添加contentPadding来减小输入。

Container(
    height 56, // Optional to decrease/increase
    child: TextField(
    decoration: InputDecoration(
        contentPadding: EdgeInsets.all(8.0), // Increase to make smaller
        prefixIcon: icon,
        labelText: 'Label',
        hintText: 'Hint',
        border: null,
    ),
    minLines: 1,
    maxLines: null // Adds support for multiple lines
));

答案 4 :(得分:0)

使用以下代码替换您的代码,以使您的TextField中至少有 3 行:

TextField(
  minLines: 3,
  controller: _textEditingController,
  decoration: InputDecoration(
    hintText: "留下你的评论吧~",
    contentPadding: EdgeInsets.only(left: getMyWidth(10), right: getMyWidth(10)),
    fillColor: default_bg,
    filled: true,
    border: OutlineInputBorder(borderSide: BorderSide.none, borderRadius: BorderRadius.all(Radius.circular(getMyWidth(5)))),
  ),
  style: makeBlackStyle(),
  keyboardType: TextInputType.multiline,
  maxLines: null,
  cursorColor: themeColor,
  onChanged: (str) {
    setState(() {
      inputStr = str;
    });
  },
)

答案 5 :(得分:0)

只设置isDense:在修饰中为真