Flutter TextField 控件

一个material design的文本字段。
1、文本字段允许用户使用硬件键盘或屏幕键盘输入文本。 只要用户更改字段中的文本,文本字段就会调用 onChanged
回调函数。如果用户指示他们已完成在字段中键入(例如,通过按下软键盘上的按钮),则文本字段调用 onSubmitted
回调函数。
2、要控制文本字段中显示的文本,请使用controller
控制器。例如,要设置文本字段的初始值,请使用已包含某些文本的controller。controller还可以控制选择和合成区域(并观察文本,选择和合成区域的变化)。
3、默认情况下,文本字段具有在文本字段下方绘制分隔符的装饰(即下划线)。您可以使用decoration属性来控制装饰,例如通过添加label或icon。如果将decoration属性设置为null,则将删除所有装饰,包括为了装饰引入的额外填充(padding)以节省标签的空间。
如果decoration
非空(这是默认设置),则文本字段要求其祖先之一为“ Material
”窗口小部件。点击TextField时,会触发在材质上绘制的墨水飞溅效果,请参阅ThemeData.splashFactory进行配置。
4、[maxLines]属性可以设置为null,删除对行数的限制。默认情况下,它是1,这意味着这是一个单行的文本字段。(maxLines)不能是零。
5、(maxLength)属性默认设置为零,这意味着文本字段中允许的字符数是不受限制的。如果设置了[maxLength],将在字段下面显示一个字符计数器,显示输入了多少字符以及允许输入多少字符。在输入[maxLength]字符后,将忽略额外的输入,除非[maxLengthEnforced]设置为false。TextField使用[LengthLimitingTextInputFormatter]强制将长度延长,这是在提供的(inputformatter)之后进行计算的,如果有的话。[maxLength]值必须为null或大于0。
7、如果将[maxLengthEnforced]设置为false,则可能输入大于[maxLength]的字符,超过限制时,错误计数器和分配器(divider)将切换到[decoration.errorStyle]。
8、[textAlign], [autofocus], [obscureText], [autocorrect], [maxLengthEnforced], [scrollPadding], [maxLines], [maxLength],and [enableInteractiveSelection] 这些参数不能为空

名称 类型 解释
controller TextEditingController 控制正在编辑的文本。如果为null,则此小部件将创建自己的TextEditingController
focusNode focusNode 控制这个小部件是否有键盘焦点。如果是null,这个小部件将创建自己的FocusNode。
decoration InputDecoration 在文本字段周围显示的装饰。默认情况下,在文本字段下绘制一条水平线,但可以其配置为显示图标icon、标签label、提示文本hint text和错误文本error text。指定null以完全删除装饰(包括由装饰引入的额外填充以节省标签空间)。默认为InputDecoration()
keyboardType TextInputType 用于指定编辑文本的键盘类型。如果[maxLines]为1 则默认为[TextInputType.text],[否则]为 [TextInputType.multiline]。
textInputAction TextInputAction 用于键盘的操作按钮类型。 如果keyboardType为TextInputType.multiline,则默认为TextInputAction.newline,否则为TextInputAction.done。
textCapitalization TextCapitalization 配置平台键盘如何选择大写或小写键盘。 仅支持文本键盘,其他键盘类型将忽略此配置。资本化是区域设置感知的。 默认为TextCapitalization.none。不能为空。
style TextStyle 用于正在编辑的文本的样式。 此文本样式也用作装饰的基本样式。 如果为null,则默认为当前主题的子标题文本样式。
textAlign TextAlign 文本应如何水平对齐。 默认为TextAlign.start,不能为null。
autofocus bool 如果没有别的内容已经获得焦点,则该文本字段是否获取焦点。如果为true,打开这个文本框立刻获得焦点。否则,只有在用户点击文本字段后才会获取焦点,显示键盘。默认值为false,不能为空。
obscureText bool 是否隐藏正在编辑的文本(例如,用于密码)。 当此参数设置为true时,文本字段中的所有字符都将替换为U + 2022 BULLET字符(•)。 默认为false,不能为空。
autocorrect bool 是否启用自动更正。 默认为true,不能为空。
maxLines int 文本展开的最大行数,必要时可换行。如果这是1(默认值),文本将不会换行,而是将水平滚动。如果这是null的,行数没有限制。如果不是null,值必须大于零。
maxLength int 文本字段中允许的最大字符数(Unicode标量值)。如果设置,字段计数器将显示在字段下方,显示已输入的字符数和允许的字数。输入maxLength字符后,将忽略其他输入,除非maxLengthEnforced设置为false。TextField使用LengthLimitingTextInputFormatter强制执行长度,该值在提供的inputFormatters(如果有)之后计算。该值必须为null或大于零。如果设置为null(默认值),则允许的字符数没有限制。空格字符(例如换行符,空格,制表符)包含在字符数中。如果maxLengthEnforced设置为false,则 可以输入多个maxLength字符,但错误计数器和分隔符将切换到decoration.errorStyle超出限制时。
maxLengthEnforced bool 如果为真,则阻止字段允许超过maxLength字符。如果设置了maxLength, maxLengthEnforced表示是否执行限制,或者仅在超过maxLength时提供字符计数器和警告。
onChanged ValueChanged<String> 当正在编辑的文本发生更改时调用
onEditingComplete VoidCallback 当用户提交可编辑内容时调用(例如,用户按下键盘上的“完成”按钮)。onEditingComplete的默认实现根据情况执行两种不同的行为:当按下完成动作时,例如“完成”、“go”、“发送”或“搜索”,用户的内容被提交给控制器(controller),然后将焦点放弃。当一个非完成动作被按下,比如"下一个"或"上一个"时,用户的内容被提交给控制器,但焦点不会被放弃,因为开发者可能会想立刻将焦点转移到提交的另一个输入组件上。
onSubmitted ValueChanged<String> 当用户指示他们已完成编辑字段中的文本时调用
inputFormatters List<TextInputFormatter> 可选的输入验证和格式化覆盖。当文本输入发生变化时,格式化程序按照提供的顺序运行。
enabled bool 如果为false, textfield将被“禁用”:它将忽略tap,其装饰将以灰色呈现。如果非null这个属性覆盖了decoration'中Decoration.enabled的装饰功能。
cursorWidth double 光标的厚度。 默认为2.0
cursorRadius Radius 光标的角应该是多圆的。 默认情况下,光标没有半径(Radius)。
cursorColor Color 绘制光标时使用的颜色。cursorColor当为null时,默认为主题。
keyboardAppearance Brightness 键盘的外观。此设置仅适用于iOS设备。如果未设置,则默认为ThemeData.primaryColorBrightness的亮度。
scrollPadding EdgeInsets 当Textfield滚动到视图中时,将填充配置到Scrollable周围的边缘。当此窗口小部件获得焦点并且不完全可见时(例如,部分地从屏幕滚动或被键盘重叠),则它将通过滚动周围的Scrollable(如果存在)来尝试使其自身可见。此值控制在滚动后TextField将位于Scrollable边缘的距离。默认为EdgeInserts.all(20.0)。
enableInteractiveSelection bool 如果为true,则长按此TextField将选择文本并显示剪切/复制/粘贴菜单,并且点击将移动文本插入符号。 默认为True。 如果为false,则将禁用大多数用于选择文本,复制和粘贴以及移动插入符号的辅助功能。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352