返回

将 Flutter TextField 文本框玩转:64 个示例图解 (一)

Android

TextField:Flutter 中文本交互的利器

在 Flutter 的浩瀚世界中,TextField 是我们不可或缺的利器,它掌控着用户与应用程序之间的文本交互。为了驾驭 TextField 的强大功能,我们精心准备了 64 个示例图解,带你领略 TextField 的无限魅力,从此告别枯燥乏味的输入体验!

基本属性

TextField 有几个关键属性,包括:

  • controller: 管理文本输入框中的文本。
  • decoration: 自定义文本输入框的外观,包括边框、填充和提示文本。
  • keyboardType: 指定键盘类型,如数字键盘或文本键盘。
  • inputFormatters: 对用户输入进行格式化,如只允许数字输入。

示例图解

现在,让我们通过一组示例图解,探索 TextField 的基础用法:

1. 创建一个简单的文本输入框

TextField(
  decoration: InputDecoration(
    labelText: '输入姓名',
  ),
)

2. 设置文本样式

TextField(
  decoration: InputDecoration(
    labelText: '输入姓名',
    textStyle: TextStyle(fontSize: 20, color: Colors.red),
  ),
)

3. 设置边框样式

TextField(
  decoration: InputDecoration(
    labelText: '输入姓名',
    border: OutlineInputBorder(
      borderRadius: BorderRadius.circular(10),
    ),
  ),
)

4. 设置填充

TextField(
  decoration: InputDecoration(
    labelText: '输入姓名',
    contentPadding: EdgeInsets.all(10),
  ),
)

5. 设置提示文本

TextField(
  decoration: InputDecoration(
    labelText: '输入姓名',
    hintText: '在此输入你的姓名',
  ),
)

6. 设置键盘类型

TextField(
  keyboardType: TextInputType.number,
  decoration: InputDecoration(
    labelText: '输入数字',
  ),
)

7. 设置输入格式化器

TextField(
  inputFormatters: [
    FilteringTextInputFormatter.digitsOnly,
  ],
  decoration: InputDecoration(
    labelText: '输入数字',
  ),
)

高级用法

除了基础用法外,TextField 还提供了许多高级特性,让你的文本交互更加丰富多彩。

1. 多行文本

使用 maxLines 属性可以创建多行文本输入框。

TextField(
  maxLines: 5,
  decoration: InputDecoration(
    labelText: '输入评论',
  ),
)

2. 自动完成

通过设置 autocorrectenableSuggestions 属性,可以开启自动完成功能。

TextField(
  autocorrect: true,
  enableSuggestions: true,
  decoration: InputDecoration(
    labelText: '输入城市名称',
  ),
)

3. 输入验证

使用 validator 属性可以验证用户输入。

TextField(
  validator: (value) {
    if (value.isEmpty) {
      return '不能为空';
    }
    return null;
  },
  decoration: InputDecoration(
    labelText: '输入密码',
  ),
)

常见问题解答

1. 如何禁用 TextField

使用 enabled 属性将其设置为 false

2. 如何获取文本输入框中的文本?

使用 controller.text 获取。

3. 如何设置文本输入框中的初始文本?

使用 controller.text 设置。

4. 如何监听文本输入框中的文本变化?

使用 controller.addListener 监听。

5. 如何清除文本输入框中的文本?

使用 controller.clear() 清除。

结论

TextField 是 Flutter 中一个强大的控件,它为文本交互提供了广泛的可能性。通过掌握它的基本属性和高级特性,你可以创建丰富而有吸引力的文本输入体验。现在,就拿起你的工具箱,用 TextField 挥洒你的想象力吧!