设置flutter中文本字段的最小高度

2nc8po8w  于 2022-12-05  发布在  Flutter
关注(0)|答案(7)|浏览(311)

我在容器中有一个文本字段,我想文本字段支持多行,所以我不能容器的高度.但如何设置文本字段的默认高度时,没有字?


我尝试了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;
                                });
                              },
                            )

所以,我问题是:没有单词的时候怎么设置文本框的默认高度?我想降低文本框的默认高度,需要支持多行

ezykj2lf

ezykj2lf1#

您可以使用'minLines:2“,它会给予你你放的线的高度。希望它能有所帮助。

z9smfwbn

z9smfwbn2#

刚刚设置的isDense:装饰真实

brgchamk

brgchamk3#

https://github.com/flutter/flutter/issues/27838
接受aswer使用-〉内容填充:

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
)
uqjltbpv

uqjltbpv4#

使用可以设置TextFieldmaxLines来设置最大高度。设置maxLines仍将支持多行。

TextField(
maxLines: 5
)
x3naxklr

x3naxklr5#

你可以使用下面的代码,我在我的一个项目中也使用了这个代码。把你的TextField Package 在一个容器中,改变容器本身的大小。然后添加一个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
));
ergxz8rk

ergxz8rk6#

将您的代码替换为以下内容,以使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;
    });
  },
)
a5g8bdjr

a5g8bdjr7#

TextField为单位设置

  • minLines:数字,//默认值:1
  • maxLines:数字或空值,//空值:支持多行

decoration中设置

  • isDense:true //使用较少的垂直间距,默认值:假的

希望能对你有所帮助😘💕

相关问题