Flutter TextField使用

分享
siman 2023-10-10 18:55:52 1059 0 来自 中国
Flutter TextField使用
  1. TextField(
  2.               controller: controller,
  3.               //允许输入的最大长度,一个字母一个符号一个汉字都算1 且右下角有字数显示
  4.               maxLength: 20,
  5.               //超过最大长度后是否还允许继续输入
  6. //              maxLengthEnforced: true,//默认true  超过长度后输入无效  右下角数字 显示10/10   此时onchange方法依然会调用,返回值就是限制了长度的值 超过后的输入不显示
  7.               maxLengthEnforced: false, //超过后可继续输入  右下角数字显示,比如 23/10

  8.               //不是允许输入的最大行数,指的是输入框内可显示的高度是几行,超过设定行数后,scroll滚动显示
  9.               maxLines: 3,
  10.               //是否自动更正
  11.               autocorrect: true,
  12.               // 该输入框的焦点处理,当获取/失去焦点时回调方法
  13.               focusNode: _focusNode,
  14.               //是否自动获取焦点  跳转到该页面后 光标自动显示到该输入框  键盘弹起
  15.               autofocus: true,
  16.               //是否是密码  非密码以明文显示,密码以点显示
  17.               obscureText: false,

  18.               //文本对齐方式  输入文字后,文字显示时是靠左靠右还是居中
  19.               textAlign: TextAlign.right, // 靠右  textDirection的设置无效
  20. //              textAlign: TextAlign.left,// 靠左   textDirection的设置无效
  21. //              textAlign: TextAlign.center,// 居中
  22. //              textAlign: TextAlign.start,// TextDirection.ltr时靠左,TextDirection.rtl时靠右
  23. //              textAlign: TextAlign.end,// TextDirection.ltr时靠右,TextDirection.rtl时靠左
  24. //              textAlign: TextAlign.justify,// 两端对齐

  25.               // 从左边还是右边开始输入文字
  26.               textDirection: TextDirection.ltr, //从左边输入  光标在左边
  27. //              textDirection: TextDirection.rtl, //从右边输入  光标在右边

  28.               //输入文本的样式  字体大小  颜色 等
  29.               style: TextStyle(fontSize: 50.0, color: Colors.blue),

  30.               //是否启用输入  如果是false 就无法输入了,且errorText失效
  31.               enabled: true,
  32. //              enabled: false,

  33.               //白名单校验,只允许输入符合规则的文本
  34. //              inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],//允许的输入格式,不是控制的键盘,只有符合格式的输入才会显示 digitsOnly表示只允许数字。
  35. //              inputFormatters: [WhitelistingTextInputFormatter(RegExp("[a-z]"))],//只允许输入a-z小写字母。

  36.               //允许输入的最大长度,一个字母一个符号一个汉字都算1 不会显示右下角的字数
  37.               //如果设置了maxLength  那么长度限制以这里的限制为准,但是会显示右下角的字数
  38. //              inputFormatters: [LengthLimitingTextInputFormatter(15)],

  39.               //黑名单校验,只允许输入给定规则以外的文本
  40. //            inputFormatters: [BlacklistingTextInputFormatter(RegExp("[a-z]"))],//不允许输入a-z小写字母
  41. //            inputFormatters: [BlacklistingTextInputFormatter(RegExp("[a-z]"),replacementString: "-")],//不允许输入a-z小写字母  如果输入了 用“-”替代

  42.               //弹出的键盘的类型
  43.               keyboardType: TextInputType.text, // 文本
  44. //              keyboardType: TextInputType.number,//数字  数字键盘  + 部分常用数学符合
  45. //              keyboardType: TextInputType.phone,//手机号  数字键盘  + 部分手机号常用符合"*", and "#".
  46. //              keyboardType: TextInputType.datetime,// 时间  数字键盘  + 部分时间常用符合":", and "-".
  47. //              keyboardType: TextInputType.emailAddress,//邮件  英文键盘 + 邮件符合  "@" and "."
  48. //              keyboardType: TextInputType.multiline,// 多行输入   控制enter键的功能为换行了
  49. //              keyboardType: TextInputType.url,//url格式 英文键盘+url符合 "/" and "."

  50.               //设置键盘上enter键的显示内容
  51.               textInputAction: TextInputAction.search, //搜索
  52. //              textInputAction: TextInputAction.none,//默认回车符号
  53. //              textInputAction: TextInputAction.done,//安卓显示 回车符号
  54. //              textInputAction: TextInputAction.go,//开始
  55. //              textInputAction: TextInputAction.next,//下一步
  56. //              textInputAction: TextInputAction.send,//发送
  57. //              textInputAction: TextInputAction.continueAction,//android  不支持
  58. //              textInputAction: TextInputAction.emergencyCall,//android  不支持
  59. //              textInputAction: TextInputAction.newline,//安卓显示 回车符号
  60. //              textInputAction: TextInputAction.route,//android  不支持
  61. //              textInputAction: TextInputAction.join,//android  不支持
  62. //              textInputAction: TextInputAction.previous,//安卓显示 回车符号
  63. //              textInputAction: TextInputAction.unspecified,//安卓显示 回车符号

  64.               // 控制键盘大小写切换的   试过了 但是好像没有效果??
  65. //              textCapitalization: TextCapitalization.characters,  // 输入时键盘的英文都是大写
  66. //              textCapitalization: TextCapitalization.none,  //  键盘英文默认显示小写
  67. //              textCapitalization: TextCapitalization.sentences, // 在输入每个句子的第一个字母时,键盘大写形式,输入后续字母时键盘小写形式
  68. //              textCapitalization: TextCapitalization.words,// 在输入每个单词的第一个字母时,键盘大写形式,输入其他字母时键盘小写形式

  69.               //光标颜色
  70.               cursorColor: Colors.red,
  71.               //光标圆角
  72.               cursorRadius: Radius.circular(5),
  73.               //光标宽度
  74.               cursorWidth: 10,

  75.               //输入框的边框样式
  76.               decoration: InputDecoration(
  77.                 border: OutlineInputBorder(
  78.                     borderRadius: BorderRadius.circular(10.0),
  79.                     borderSide: BorderSide(color: Colors.transparent)),
  80.                 //输入内容距离上下左右的距离 ,可通过这个属性来控制 TextField的高度
  81.                 contentPadding: EdgeInsets.all(10.0),
  82.                 fillColor: Colors.white, filled: true,
  83. //            labelText: 'Hello',
  84.                 // 以下属性可用来去除TextField的边框
  85.                 disabledBorder: InputBorder.none,
  86.                 enabledBorder: InputBorder.none,
  87.                 focusedBorder: InputBorder.none,
  88.               ),

  89.               // 键盘外观  仅ios有效
  90. //              keyboardAppearance: Brightness.light,
  91.               keyboardAppearance: Brightness.dark,

  92.               //???暂未发现什么用途
  93.               scrollPadding: EdgeInsets.all(50),

  94.               //???暂未发现什么用途
  95. //              dragStartBehavior: DragStartBehavior.start,
  96.               dragStartBehavior: DragStartBehavior.down,

  97.               //长按输入的文字时,true显示系统的粘贴板  false不显示
  98.               enableInteractiveSelection: true,

  99.               //自定义数字显示   指定maxLength后 右下角会出现字数,flutter有默认实现  可以通过这个自定义
  100.               buildCounter: buildcount,

  101.               //点击一次输入就调用
  102.               onTap: () {
  103.                 print('ontap');
  104.               },
  105.               onChanged: (text) {
  106.                 //输入内容变化后,调用
  107.                 print('change $text');
  108.               },
  109.               onSubmitted: (text) {
  110.                 //键盘按回车后调用
  111.                 print('submit $text');
  112.               },
  113.               //按回车时调用 先调用此方法  然后调用onSubmitted方法
  114.               onEditingComplete: () {
  115.                 print('onEditingComplete');
  116.               },
  117.             ),
复制代码



您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋 藏宝库It社区 ( 冀ICP备14008649号 )

GMT+8, 2024-4-27 14:43 , Processed in 0.181274 second(s), 34 queries . © 2003-2025 cbk Team.

快速回复 返回顶部 返回列表