一架梯子,一头程序猿,仰望星空!

Flutter TextField


TextField 最常用的文本输入widget。

  • 该 widget 作为文本输入框,可以接收用户以屏幕按键或者键盘输入的文本信息。
  • 用户修改文本信息时,可以通过Onchange回调函数,获取到最新的文本信息。
  • 用户输入完毕后,TextField会调用onSubmitted回调函数。
  • 可以通过decoration参数控制widget的样式。

效果图:

1. 基本用法

例子1:
默认情况下,TextField 下方有一个下划线进行修饰。

TextField()

例子2:

TextField(
    keyboardType: TextInputType.number, // 设置文本框,键盘类型,这里设置为数字键盘
    decoration: InputDecoration( // 通过InputDecoration类设置input widget样式
                    contentPadding: EdgeInsets.all(10.0),  // 设置内间距为10个像素
                    icon: Icon(Icons.text_fields), // 设置左侧图标
                    labelText: '1381111111)', // 输入框内容
                    helperText: '请输入手机号', // 帮助文本内容
                ),
    onChanged: (str) {  // 用户修改内容,会调用回调函数
                    print(str); // 打印用户输入的内容
                },
    autofocus: false, // 是否自动获取输入焦点。
)

2. 参数说明

参数参数类型说明是否可选
keyboardTypeTextInputType键盘类型,支持常用的文本、数字键盘
decorationInputDecoration文本框装饰器,可以用来设置widget的样式
autofocusbool是否自动获取输入焦点
onChangedvoid Function(String value)内容变化的回调函数
onSubmittedvoid Function(String value)输入完成后的回调函数

3. TextInputType类型说明

TextInputType常用类型如下:

  • TextInputType.text - 默认键盘
  • TextInputType.multiline - 多行输入
  • TextInputType.number - 数字键盘
  • TextInputType.phone - 数字键盘的一种,用于电话号码输入

4. InputDecoration类型说明

输入文本框装饰类,常用参数如下:

参数参数类型说明是否可选
labelTextString用于描述输入框
labelStyleTextStyle控制labelText的样式,接收一个TextStyle类型的值
helperTextString辅助文本,位于输入框下方
helperTextString辅助文本,位于输入框下方
hintTextString提示文本,位于输入框内部
errorTextString错误信息提示
contentPaddingEdgeInsetsGeometry内间距
enabledbool输入框是否可用