如何在Flutter中隐藏文本字段底部的字母计数器

Sun*_*nil 27 dart flutter

在此输入图像描述

我面临一个小问题.正如你所看到的,我在Flutter中设置了TextField的maxLength 1,但是我无法隐藏文本计数器的底部标签.

Var*_*run 54

您可以使用输入格式化程序 TextField

以下是:

    inputFormatters:[
      LengthLimitingTextInputFormatter(1),
    ]
Run Code Online (Sandbox Code Playgroud)

谢谢!

  • 它可以工作,但是需要您向文件中导入一个额外的库:`import'package:package:flutter / services.dart';` (3认同)
  • 这可能是显而易见的,但必须删除“maxLength”参数才能正常工作。 (2认同)

Rah*_*rma 38

要在使用属性时隐藏TextFieldTextFormField小部件的计数器值maxLength,请尝试以下操作:

TextField(decoration: InputDecoration(
              hintText: "Email",
              counterText: "",
              ),
          maxLength: 40,
          ),
Run Code Online (Sandbox Code Playgroud)

在这里,我counterTextInputDecoration属性中设置了属性为空值.希望它会有所帮助.

  • 对我来说,不保留空白空间,它被删除,运行最新版本的 flutter 有帮助吗? (6认同)
  • 如果您只想隐藏它,这很好,但它仍然存在并且占用空间,通常会导致文本框不均匀。将 maxLength 替换为 `TextField( inputFormatters: [LengthLimitingTextInputFormatter(mMaxLength)] )` 可以解决这个问题,但需要您向文件中添加一个额外的库。 (3认同)

小智 19

你可以做:

TextField(
   maxLength: 10,
   buildCounter: (BuildContext context, { int currentLength, int maxLength, bool isFocused }) => null,
)
Run Code Online (Sandbox Code Playgroud)


小智 19

只需将 counter 设置为 Offstage() 即可。

TextField(
    maxLines: 1,
    decoration: InputDecoration(
      counter: Offstage(),
    ),
),
Run Code Online (Sandbox Code Playgroud)


小智 14

添加counterText: "",到 InputDecoration

counterText 的图像示例

TextField(
    decoration: InputDecoration(
        counterText: "",
    ),
    maxLength: 10,
),
Run Code Online (Sandbox Code Playgroud)


Kev*_*oka 13

大多数答案似乎都有效。另一种方法是用收缩的 SizeBox 分配计数器。

TextField(decoration: InputDecoration(
    hintText: "Email",
    counter: SizedBox.shrink()
),
  maxLength: 40,
),
Run Code Online (Sandbox Code Playgroud)


Dan*_*dat 11

仅此一点就解决了我的问题!

TextField(
   decoration: InputDecoration(
     labelText: "Table Number",
     counterText: ""
)
Run Code Online (Sandbox Code Playgroud)


ayt*_*nch 9

对于空安全,请使用以下命令:

TextField(
   maxLength: 10,
   buildCounter: (BuildContext context, {int? currentLength, int? maxLength, bool? isFocused}) => null,
)
Run Code Online (Sandbox Code Playgroud)


pet*_*s J 8

您可以通过counterText: ''textfield装饰内添加来隐藏计数器。它只会显示一个空字符串。

  • IT 仍然占据柜台空间 (2认同)

小智 8

每当您不需要颤动的东西时,只需放一个空容器即可!

TextField(
  decoration: InputDecoration(
    hintText: "Email",
    counter: Container(),
  ),
  maxLength: 20,
),
Run Code Online (Sandbox Code Playgroud)


小智 8

只需将 buildCounter 设置为 null。
它是一个生成自定义 [InputDecorator.counter] 小部件的回调

TextField(
   maxLength: (some length),
   buildCounter: (BuildContext context, {int currentLength, int maxLength, bool isFocused}) => null,
);
Run Code Online (Sandbox Code Playgroud)


Mah*_*loo 5

您可以使用InputDecoratoin隐藏字母计数器。

TextFormField(
   decoration: InputDecoration(
     labelText: "username",
     counterStyle: TextStyle(height: double.minPositive,),
     counterText: ""
)
Run Code Online (Sandbox Code Playgroud)


Cas*_*rin 5

您可以在 TextField 中使用输入格式化程序设置输入限制,如果您只想隐藏设置输入限制的计数器,这是最好的方法。

import 'package:flutter/services.dart';

inputFormatters:[
      LengthLimitingTextInputFormatter(1),
]
Run Code Online (Sandbox Code Playgroud)

或者你可以自定义装饰,制作一个 counter = Container():

 decoration: InputDecoration(
    hintText: "Email",
    counter: Container(),
  ),
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢自定义 buildCounter,这里是如何正确执行此操作(您还可以自定义字体、颜色等)。当您的文本字段失去焦点时,计数器限制将消失。或者你可以直接设置

        TextField(
          controller: _clienteTextEditingController,
          maxLength: 50,
          buildCounter: (BuildContext context,
              {int currentLength, int maxLength, bool isFocused}) {
            return isFocused
                ? Text(
                    'The Input Limits are: $currentLength/$maxLength ',
                    style: new TextStyle(
                      fontSize: 10.0,
                    ),
                    semanticsLabel: 'Input constraints',
                  )
                : null;
          },
        ),
Run Code Online (Sandbox Code Playgroud)