• Flutter中TextField使用详情


    1.TextField常用的属性

    属性        解释

    maxLength

    文本的输入长度

    maxLines

    文本输入的行数

    textAlign

    输入框内内容剧中对齐

    textDirection

    文字从左向右还是从右向左

    autofocus

    自动获取焦点

    obscureText

    密文输入(如果是密文输入的话,maxLines只能是1).

    enabled

    输入框是否可以输入

    onChanged

    当文本发生改变的时候,回调的函数

    onSubmitted单击完成按钮时候,回调的函数

    inputFormatters

    限制输入的方式(文本/数字)

    keyboardType

    设置键盘格式

    textInputAction输入的类型(下一步,发送,搜索等等)

    2.decoration设置输入框

    hintText

    占位符

    labelText

    输入框没有焦点的时候显示在输入框里面,如果输入框获取焦点后就显示在输入框边框线上面

    helperText

    显示在输入框下面

    errorText

    和helperText显示的文字位置一致,两者相互重叠

    prefixText

    输入框获取焦点的时候才会显示出来,在输入框的最前面,光标在该文字后面

    prefixIcon

    前面的小图标(该小图标会显示在输入框横线上方)

    Icon前面的小图标(该小图标会将整个输入框进行缩进)

    suffixText

    输入框获取焦点的时候才会显示出来,在输入框的最后面

    counterText

    输入框右下角显示的文字,默认和最大字数是相重叠的

    enabledBorder

    配置可编辑状态时候的样式

    3.style

    color

    设置文字颜色

    fontSize

    设置文字大小

    decoration

    none:没有

    underline:下划线

    overline:上划线

    lineThrough:删除线

    decorationColor

    设置下划线的颜色

    decorationStyle

    decorationStyle设置下划线的样式

    solid:实线

    double:两条实线

    dashed:虚线

    wavy:波浪线

    fontWeight

    设置文字为粗体

    fontStyle

    设置为斜体

    letterSpacing

    设置文字之间间距

    wordSpacing

    设置单词之间的间距

    height

    控制行高倍数

    backgroundColor

    设置输入框背景颜色

    1. void main() {
    2. runApp( MyApp());
    3. }
    4. class MyApp extends StatelessWidget {
    5. MyApp({Key? key}) : super(key: key);
    6. //当文本框需要使用到初始值的话需要使用到TextEditingController.否则的话可以直接声明一个变量用来接收onChanged: (value) {}里面的value值.
    7. TextEditingController controller =new TextEditingController();
    8. void dispose() {
    9. //需要进行释放
    10. controller.dispose();
    11. super.dispose();
    12. }
    13. @override
    14. void initState() {
    15. controller.text="原始值";
    16. //文本框的值有变化的时候,就会执行该监听器方法
    17. controller.addListener(
    18. (){
    19. }
    20. );
    21. //控制 初始化的时候鼠标保持在文字最后面
    22. controller=TextEditingController.fromValue(
    23. //用来初始化显示
    24. TextEditingValue(
    25. //用来设置文本内容
    26. text:"preText",
    27. //设置光标的位置
    28. selection: TextSelection.fromPosition(
    29. //用来设置文本的位置
    30. TextPosition(
    31. affinity: TextAffinity.downstream,
    32. //光标向后移动的长度
    33. offset: 3,
    34. ),
    35. ),
    36. )
    37. );
    38. }
    39. // This widget is the root of your application.
    40. @override
    41. Widget build(BuildContext context) {
    42. return MaterialApp(
    43. title: 'Flutter Demo',
    44. theme: ThemeData(
    45. primarySwatch: Colors.blue,
    46. ),
    47. home: Scaffold(
    48. appBar: AppBar(
    49. title: const Text("Flutter App"),
    50. actions: [
    51. ElevatedButton(
    52. onPressed: () {
    53. print(controller.text);//输入框里面的内容
    54. },
    55. child: Text("保存")),
    56. ],
    57. ),
    58. /**
    59. * TextField使用详情
    60. * 1.TextField组件基本使用以及常用属性配置;
    61. * 2.TextField边框decoration详细综述;
    62. * 3.TextField的帮助提示文本配置;
    63. * 4.TextField的TextEditingController;
    64. * 5.TextField的焦点相关配置;
    65. * 6.TextField的输入光标的相关配置.
    66. */
    67. body: Center(
    68. child: TextField(
    69. maxLength: 30, //文本的输入长度
    70. maxLines: 1, //文本输入的行数
    71. textAlign: TextAlign.left, //输入框内内容剧中对齐
    72. textDirection: TextDirection.ltr, //文字从左向右
    73. autofocus: false, //自动获取焦点
    74. obscureText: false, //密文输入(如果是密文输入的话,maxLines只能是1).
    75. enabled: true, //输入框是否可以输入
    76. onChanged: (value) {}, //当文本发生改变的时候,回调的函数
    77. inputFormatters: [], //限制输入的方式(文本/数字)
    78. keyboardType: TextInputType.phone, //设置键盘格式
    79. decoration: const InputDecoration(
    80. hintText: "请输入用户名", //占位符
    81. labelText: "输入中...", //输入框没有焦点的时候显示在输入框里面,如果输入框获取焦点后就显示在输入框边框线上面
    82. helperText: "帮助提示语", //显示在输入框下面
    83. errorText: "错误文本提示", //和helperText显示的文字位置一致,两者相互重叠
    84. prefixText: "用户名:", //输入框获取焦点的时候才会显示出来,在输入框的最前面,光标在该文字后面
    85. prefixIcon: Icon(Icons.call), //前面的小图标
    86. suffixText: "后面", //输入框获取焦点的时候才会显示出来,在输入框的最后面
    87. counterText: "计数", //输入框右下角显示的文字,默认和最大字数是相重叠的
    88. //配置可编辑状态时候的样式
    89. enabledBorder: OutlineInputBorder(
    90. borderRadius: BorderRadius.all(Radius.circular(10)),
    91. borderSide: BorderSide(
    92. color: Colors.black, //设置边框颜色
    93. width: 2, //设置边框宽度
    94. )), //设置边框的样式
    95. //focusedBorder: (),//获取焦点时候的配置
    96. //disabledBorder: (),//配置不可编辑状态的样式
    97. ),
    98. style: const TextStyle(
    99. color: Colors.purple, //设置文字颜色
    100. fontSize: 16, //设置文字大小
    101. /**
    102. * none:没有
    103. * underline:下划线
    104. * overline:上划线
    105. * lineThrough:删除线
    106. */
    107. decoration: TextDecoration.none,
    108. decorationColor: Colors.red, //设置下划线的颜色
    109. /**
    110. * decorationStyle设置下划线的样式
    111. * solid:实线
    112. * double:两条实线
    113. * dotted:
    114. * dashed:虚线
    115. * wavy:波浪线
    116. */
    117. decorationStyle: TextDecorationStyle.wavy,
    118. fontWeight: FontWeight.w600, //设置文字为粗体,
    119. fontStyle: FontStyle.italic, //设置为斜体
    120. letterSpacing: 3, //设置文字之间间距
    121. wordSpacing: 2, //设置单词之间的间距
    122. height: 1, //控制行高倍数
    123. backgroundColor: Colors.yellow, //设置输入框背景颜色
    124. ),
    125. ),
    126. ),
    127. ),
    128. );
    129. }
    130. }

  • 相关阅读:
    SwiftUI 教程之如何呈现不同高度的sheet, 新的视图修改器使工作变得容易。
    复现XSS漏洞及分析
    第十四章《多线程》第9节:ThreadLocal类
    怎么合并多个PDF文件?看完这篇你就会了
    【JavaScript】JS能力测试题:数组扁平化 | 判断质数 | 获取字符串的长度
    Demo 题记
    【Linux学习】- POSIX多线程技术
    12345
    ​目标检测算法——YOLOv5/YOLOv7改进之结合​SOCA(单幅图像超分辨率)
    计算机毕业设计springboot+vue+elementUI汽车车辆充电桩管理系统
  • 原文地址:https://blog.csdn.net/eastWind1101/article/details/127412249