文本大于输入时出现颤动,文本消失

时间:2019-12-30 19:39:55

标签: flutter

问题是当文本大于输入大小时,文本就会消失,我不知道为什么

这是我的代码


TextField(
    focusNode: _focusEmailNode,
    controller: _emailController,
    decoration: InputDecoration(
    border: OutlineInputBorder(),
    enabledBorder: OutlineInputBorder(
        borderSide: BorderSide(color: txtEmailBoder),
    ),
    hintText: 'Email',
),

enter image description here

4 个答案:

答案 0 :(得分:3)

为文本字段提供一个输入格式化程序,并带有所需的文本长度,如下所示:

 inputFormatters: [
        LengthLimitingTextInputFormatter(50),
      ],

然后将内容填充设置为这样:

contentPadding: EdgeInsets.fromLTRB(5.0 , 20.0 , 5.0 , 20.0),

答案 1 :(得分:3)

搜索了很多网站后,我终于找到了解决方案。您可以通过在文本字段中提供 decoration and maxlines 来解决此问题。在 isDense as true 中给 InputDecoration 示例:

Container(
  height: 20,
  width: 100,
  child: TextFormField(
    maxLines: 1,
    decoration: InputDecoration(
      isDense: true,
      contentPadding: EdgeInsets.fromLTRB(5.0, 1.0, 5.0, 1.0),
    ),
    onChanged: (value) {
      print(value);
    },
  ),
);

如果您不提供内容填充,那么您的文本将从中间剪切,如下所示。 enter image description here

当你提供填充时要小心,你应该根据文本字段的高度提供填充。如果您提供错误的填充,那么您的文本也将不可见。

答案 2 :(得分:0)

Widget build(BuildContext context) {
    return Scaffold(
        body: Container(
            padding: EdgeInsets.fromLTRB(5.0, 50, 5.0, 10.0),
            alignment: Alignment.center,
            child: TextField(
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                enabledBorder: OutlineInputBorder(
                  borderSide: BorderSide(color: Colors.blueAccent),
                ),
                hintText: 'Email',
              ),
            )));
  }

Screenshot

答案 3 :(得分:0)

为防止这种情况消失,请使用装饰作为
InputDecoration.collapsed(hintText: "Search Customer")

完整代码为
TextField(decoration : InputDecoration.collapsed(hintText: "Search Customer"), textCapitalization: TextCapitalization.sentences)