Flutter TextField 组件的属性、监听、赋值等详细说明

这篇具有很好参考价值的文章主要介绍了Flutter TextField 组件的属性、监听、赋值等详细说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.TextField 属性:

const TextField({
Key key,
this.controller,//控制器
this.focusNode,//焦点
this.decoration = const InputDecoration(),//装饰
TextInputType keyboardType,//键盘类型,即输入类型
this.textInputAction,//键盘按钮
this.textCapitalization = TextCapitalization.none,//大小写
this.style,//样式
this.strutStyle,
this.textAlign = TextAlign.start,//对齐方式
this.textDirection,
this.autofocus = false,//自动聚焦
this.obscureText = false,//是否隐藏文本,即显示密码类型
this.autocorrect = true,//自动更正
this.maxLines = 1,//最多行数,高度与行数同步
this.minLines,//最小行数
this.expands = false,
this.maxLength,//最多输入数,有值后右下角就会有一个计数器
this.maxLengthEnforced = true,
this.onChanged,//输入改变回调
this.onEditingComplete,//输入完成时,配合TextInputAction.done使用
this.onSubmitted,//提交时,配合TextInputAction
this.inputFormatters,//输入校验
this.enabled,//是否可用
this.cursorWidth = 2.0,//光标宽度
this.cursorRadius,//光标圆角
this.cursorColor,//光标颜色
this.keyboardAppearance,
this.scrollPadding = const EdgeInsets.all(20.0),
this.dragStartBehavior = DragStartBehavior.start,
this.enableInteractiveSelection,
this.onTap,//点击事件
this.buildCounter,
this.scrollPhysics,
}) 

2.TextField  的  InputDecoration()  属性:

const InputDecoration({
this.icon,                  // 装饰器外小图标
this.labelText,             // 文本框描述标签
this.labelStyle,            // 文本框描述标签样式
this.helperText,            // 文本框辅助标签
this.helperStyle,           // 文本框辅助标签样式
this.hintText,              // 文本框默认提示信息
this.hintStyle,             // 文本框默认提示信息样式
this.hintMaxLines,          // 文本框默认提示信息最大行数
this.errorText,             // 文本框错误提示信息
this.errorStyle,            // 文本框错误提示信息样式
this.errorMaxLines,         // 文本框错误提示信息最大行数
this.hasFloatingPlaceholder = true,     // 文本框获取焦点后 labelText 是否向上浮动
this.isDense,               // 是否问紧凑型文本框
this.contentPadding,        // 文本内边距
this.prefixIcon,            // 前置图标
this.prefix,                // 前置预填充 Widget
this.prefixText,            // 前置预填充文本
this.prefixStyle,           // 前置预填充样式
this.suffixIcon,            // 后置图标
this.suffix,                // 后置预填充 Widget
this.suffixText,            // 后置预填充文本
this.suffixStyle,           // 后置预填充样式
this.counter,               // 输入框右下角 Widget
this.counterText,           // 输入框右下角文本
this.counterStyle,          // 输入框右下角样式
this.filled,                // 是否颜色填充文本框
this.fillColor,             // 填充颜色
this.errorBorder,           // errorText 存在时未获取焦点边框
this.focusedBorder,         // 获取焦点时边框
this.focusedErrorBorder,    // errorText 存在时获取焦点边框
this.disabledBorder,        // 不可用时边框
this.enabledBorder,         // 可用时边框
this.border,                // 边框
this.enabled = true,        // 输入框是否可用
this.semanticCounterText,
this.alignLabelWithHint,    // 覆盖将标签与 TextField 的中心对齐
})

3.TextField 的 controller 使用:

//初始化控制器
TextEditingController _use = TextEditingController();

①获取文本框内容:

_use.text.toString();

②给文本框赋值,有两种写法:

String  mUserId="123";

// 给文本框赋值 1
_use.value = _use.value.copyWith(
  text: mUserId.isEmpty ? "" : mUserId,
  selection: TextSelection(
      baseOffset: mUserId.length, extentOffset: mUserId.length),
  composing: TextRange.empty,
);
// 给文本框赋值 2 
_use = TextEditingController.fromValue(TextEditingValue(
    text: mUserId.isEmpty ? "" : mUserId, //判断keyword是否为空
    // 保持光标在最后

    selection: TextSelection.fromPosition(TextPosition(
        affinity: TextAffinity.downstream, offset: mUserId.length))));

③文本框的监听:

_use .addListener(() {

 print("你输入的内容为:"+mUserId);

 });

4.TextField 的改变事件 onChanged :

return TextField(
//改变事件

onChanged: (str) {

print("你改变的内容为:"+str);

},);

5.TextField  的 焦点  focusNode 使用:

//创建FocusNode对象实例
FocusNode _focusNode = FocusNode();

//使用

return TextField(

focusNode: _focusNode,

);

/// 输入框焦点事件的捕捉与监听
@override
void initState() {
  super.initState()
  //添加listener监听
  //对应的TextField失去或者获取焦点都会回调此监听
  _focusNode.addListener(() {
    
    if (_focusNode.hasFocus) {
      //获取焦点
      print("获取焦点");
    } else {
      //失去焦点
      print("失去焦点");
    }
  });
 
}

6.TextField 使用实例(用到了部分属性):

//输入框
Widget _input() {
  return TextField(
    controller: _use,//控制器名称
    textAlignVertical: TextAlignVertical.center,
    maxLines: 1,
    style: TextStyle(fontSize: 40.sp),
    focusNode: _usefocusNode,//焦点名称
    //改变事件
    onChanged: (str) {
      setState(() {});
    },
    decoration: InputDecoration(
        contentPadding: EdgeInsets.all(10.r),
        isCollapsed: true,
        //文本框前面的图片
        prefixIcon: const Icon(Icons.person),
        //文本框后面的图片(根据是否获取焦点并且有文本框内容来判断是否显示图片)
        suffixIcon: _usefocusNode.hasFocus && _use.text.isNotEmpty
            ? IconButton(
                //如果文本长度不为空则显示清除按钮
                onPressed: () {
                  _use.clear();
                  setState(() {});
                },
                icon: const Icon(Icons.cancel, color: Colors.grey))
            : null,
        hintText: "请输入账号",
        //文本框选中外边框属性
        enabledBorder: OutlineInputBorder(
            borderRadius: BorderRadius.all(Radius.circular(10.r)),//文本框边框圆角
            borderSide: BorderSide(width: 2.w, color: Colors.black12)),//文本框边框宽度和颜色
         //文本框未选中外边框属性
        focusedBorder: OutlineInputBorder(
            borderRadius: BorderRadius.all(Radius.circular(10.r)),
            borderSide: BorderSide(width: 2.w, color: Colors.blueAccent))),
  );
}

在此记录一下学习的东西。文章来源地址https://www.toymoban.com/news/detail-401939.html

到了这里,关于Flutter TextField 组件的属性、监听、赋值等详细说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算属性和监听属性,生命周期钩子,组件介绍

    # 计算属性是基于它们的依赖进行缓存的 # 计算属性只有在它的相关依赖发生改变时才会重新求值 # 计算属性就像Python中的property,可以把方法/函数伪装成属性 # 计算属性必须要有返回值 基本使用 首字母变大写 通过计算属性,重写过滤案例 只要属性发生变化,就会执行 函数

    2024年01月21日
    浏览(43)
  • vue04---计算属性/监听(侦听)属性/Vue生命周期/组件介绍和使用/组件间通信/ref属性

    # 1 计算属性是基于它们的依赖变量进行缓存的 # 2 计算属性只有在它的相关依赖变量发生改变时才会重新求值,否则不会变(函数只要页面变化,就会重新运算) # 3 计算属性就像Python中的property,可以把方法/函数伪装成属性 # 4 计算属性,必须有返回值 基本使用 重写过滤案

    2024年02月08日
    浏览(64)
  • 微信小程序实现数值监听(页面和组件属性)

    简介 目前文章主要介绍对页面属性值的监听以及组件属性值的监听。需要异页面监听数据,请跳转至另一个文章介绍 为什么需要监听属性值 当需要通过一个属性变化时候,需要计算相应的方法等。pc网站经常需要监听属性,那么小程序应该怎么去实现? 1、首先创建公共的

    2024年02月09日
    浏览(61)
  • 微信小程序——自定义组件组件的创建和引用,修改组件的样式隔离选项,stylesolation的可选值,properties属性,data数据,methods方法,数据监听器,用法,监听对象属性的变化

    ①在项目的根目录中,鼠标右键,创建 components - test 文件夹 ②在新建的 components - test 文件夹上,鼠标右键,点击\\\"新建 Component \\\" ③键入组件的名称之后回车,会自动生成组件对应的4个文件,后缀名分别为 js , json ,. wxml 和. wxss 注意,为了保证目录结构的清晰,建议把不同的

    2024年02月15日
    浏览(75)
  • angular 子组件ngOnChanges监听@input传入的输入属性

    在进入主题之前,先了解一下angular的生命周期。 生命周期 钩子分类 指令与组件共有的钩子 ngOnChanges ngOnInit ngDoCheck ngOnDestroy 组件特有的钩子 ngAfterContentInit ngAfterContentChecked ngAfterViewInit ngAfterViewChecked 生命周期钩子的作用及调用顺序 ngOnChanges - 当数据绑定输入属性的值发生变

    2024年02月12日
    浏览(42)
  • 小程序02/小程序 swiper组件 属性介绍说明、navigator组件结构 组件介绍 属性介绍

    语法结构:  swiper swiper-item   image src=\\\" \\\"    /image /swiper-item /swiper 组件介绍: swiper可以理解为小程序内置的轮播图标签 使用了他可以更方便使用轮播图功能 属性介绍:     属性名                     类型             说明 indicator-dots         Boolean        是否显示面

    2024年02月11日
    浏览(44)
  • Flutter TextField 交互实例 —— 新手礼包

    大家好,我是 17。 新手礼包一共 3 篇文章,每篇都是描述尽量详细,实例讲解,包会! Flutter Row 实例 —— 新手礼包 Flutter TextField UI 实例 —— 新手礼包 Flutter TextField 交互实例 —— 新手礼包 本篇包含所有常见 TextField 交互示例。 在上一篇 Flutter TextField UI 实例 中第一个示例

    2023年04月09日
    浏览(40)
  • Flutter TextField 输入框 简单使用

    创建方式一: 创建方式二: TextField 是一个 material design 风格的输入框,本身有多种属性,除此之外装饰器 InputDecoration 也有多种属性,但都比较简单,所以不必担心,且听我娓娓道来。 InputDecoration 属性 图标 图标有3种: 左侧外的图标 左侧内图标 右侧内图标 在右侧图标加了

    2024年02月08日
    浏览(43)
  • Flutter TextField UI 实例 —— 新手礼包

    大家好,我是17。 新手礼包一共 3 篇文章,每篇都是描述尽量详细,实例讲解,包会! Flutter Row 实例 —— 新手礼包 Flutter TextField UI 实例 —— 新手礼包 Flutter TextField 交互实例 —— 新手礼包 本篇介绍了 TextField UI 的常见写法,从TextField的尺寸,border,icon,文本到光标,无所

    2023年04月08日
    浏览(33)
  • Flutter TextField设置背景色和圆角

    这是一个很常见的登录页面,自然想到了Flutter的表单组件 Form。  想使用 Form  组件,就要修改 TextFormField 的样式了。 TextFormField 是 TextField 的一个包装类,除了 FormField 定义的属性之外,它还包括 TextField 的属性。 TextField的decoration 属性可以用于控制 TextField 的外观显示,如提

    2023年04月18日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包