TextField 输入框
属性如下:
1 | TextField( |
buildCounter
当设置了maxLength后,右下角会出现如图红圈内的字数。buildCounter属性,可以自定义右下角的字数显示。
1 | Widget buildcount( |
TextEditingController和FocusNode
- TextEditingController,可以看做TextField的一个引用,通过controller可以获取输入框的文本、设置光标位置、清空输入框等操作。
- FocusNode,管理TextField的焦点。
1 | class _FlutterTextFieldPageState extends State<FlutterTextFieldPage> { |
decoration 输入框的边框样式,InputDecoration类型
属性总览如下:
1 | TextField( |
分解如下:
- icon 显示在输入框前面的图标,在文字和下划线前面。注意icon是在输入框外面
1 | TextField( |
- prefix 显示在输入框内,光标前面的指定图片或其他Widge。注意实在输入内部
1 | TextField( |
- prefixIcon 显示在输入框内,光标前面的图标,注意icon是在输入框外
- prefixText 显示在输入框内,光标前面的文本
1 | TextField( |
- suffixIcon 显示在输入框内,光标文字后面,输入框最后面的图标
- suffixText 显示在输入框内,光标文字后面,输入框最后面的文本
1 | TextField( |
- suffix 显示在输入框内,最后面的指定图片或其他Widget。注意suffixText不能与suffix共存
1 | TextField( |
- counterText显示在输入的下划线外右下角的文字提示,会覆盖maxLength的右下角显示的字数限制。counterText与counter只能存在一个
1 | TextField( |
- counter 显示在输入的下划线外右下角的提示,可以是任何Widget,counterText与counter只能存在一个
1 | TextField( |
- labelText 显示在输入框内的提示语,一旦输入框获取焦点就字体缩小并上移到输入上方,作为提示使用
- hasFloatingPlaceholder 默认为true,表示labelText是否上浮,true上浮,false表示获取焦点后labelText消失。
hasFloatingPlaceholder 为true 输入框无焦点时:
hasFloatingPlaceholder 为true 有焦点时:
hasFloatingPlaceholder 为false 输入框无焦点时:
hasFloatingPlaceholder 为false有焦点时:labelText消失
1 | TextField( |
- helperText 显示在输入框下划线下面的提示语,提示使用
1 | TextField( |
- hintText 显示在输入框内的提示信息,当输入框为空时显示,一旦开始输入内容就消失
输入框内容为空时:
输入框内容不为空时:hintText不显示
1 | TextField( |
- errorText 在输入框下方的提示语,通常用于错误提示,比如密码错误
用户名错误等 同时输入框的下划线修改为了红色 - errorMaxLines 做多显示的行数 ,超过行数显示…
- errorBorder 失去焦点时,error时下划线显示的边框样式,不设置则使用默认的的下划线
- focusedErrorBorder 获得焦点时,error时下划线显示的边框样式,不设置则使用默认的的下划线
无焦点时 使用errorBorder
有焦点时 使用focusedErrorBorder
1 | TextField( |
- contentPadding 输入框的padding 对内部的文字有效
- isDense
改变输入框是否为密集型,默认为false,修改为true时,图标及间距会变小
行间距减小
1 | TextField( |
- fillColor 输入框内部的填充颜色 需filled=true
- filled 是否填充
1 | TextField( |
- enabled 是否启用输入框 true启用 false禁用
- disabledBorder 禁用时的border
- enabledBorder 启用时的border
- focusedBorder 获得焦点后的border
禁用时的border
启用时的border
获得焦点后的border
1 | TextField( |
- border 级别最低的border,没有设置其他border时显示的border
1 | TextField( |
- border 边框,取值分为四面的边框OutlineInputBorder和下划线框UnderlineInputBorder
如一个focusedBorder设置OutlineInputBorder
如一个enabledBorder设置UnderlineInputBorder
1 | TextField( |
- border 边框,隐藏边框 取值InputBorder.none
1 | TextField( |