当前位置: 首页 > news >正文

Flutter基础(②④事件回调与交互处理)

实时监听输入变化 → onChanged

import 'package:flutter/material.dart';class SearchExample extends StatefulWidget {const SearchExample({super.key});@overrideState<SearchExample> createState() => _SearchExampleState();
}class _SearchExampleState extends State<SearchExample> {// 存储当前输入的搜索关键词String _searchText = "";// 这个就是被调用的onSearch方法void onSearch(String value) {// 这里可以写实际的搜索逻辑,比如网络请求、过滤列表等setState(() {// 把输入的新值保存到状态中_searchText = value;});}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text("搜索示例")),body: Padding(padding: const EdgeInsets.all(16.0),child: Column(children: [// 搜索输入框TextField(decoration: const InputDecoration(hintText: "请输入搜索内容...",border: OutlineInputBorder(),),// 当输入内容变化时,会触发这个回调onChanged: (value) {// 把输入的最新值传递给onSearch方法onSearch(value);},),const SizedBox(height: 20),// 显示当前搜索内容Text("你输入的是: $_searchText")],),),);}
}

用户在输入框中输入文字(比如 "苹果")
输入框检测到内容变化,触发 onChanged 回调
(value) 中的 value 此时就是 "苹果" 这个字符串
执行 onSearch(value),也就是把 "苹果" 传给 onSearch 方法
onSearch 方法里通过 setState 更新 _searchText 的值
界面刷新,下方的文本会显示 "你输入的是:苹果"

如果没有这个回调,输入框的内容变化就无法被程序感知,也就无法实现实时显示、搜索过滤等功能了


回车 / 完成提交 → onSubmitted

作用:当用户完成输入并提交时触发(比如按键盘的 "完成"、"回车" 键)
场景:适合点击提交后再处理输入(如搜索、登录按钮的回车提交)

TextField(onSubmitted: (value) {print("用户提交了:$value"); // 比如用户输入后按回车,会执行这里},decoration: InputDecoration(hintText: "输入后按回车试试"),
)


点击输入框 → onTap

作用:当用户点击输入框时触发(还没开始输入,只是点击激活输入框)
场景:可以在点击时做一些预处理,比如弹出选择器、清空默认提示等

TextField(onTap: () {print("输入框被点击了");// 比如:弹出日期选择器showDatePicker(context: context,initialDate: DateTime.now(),firstDate: DateTime(2000),lastDate: DateTime(2100),);},decoration: InputDecoration(hintText: "点击我试试"),
)


表单验证  → validator

作用:表单验证回调,配合 Form 使用,用于校验输入内容是否合法
返回值:如果验证失败,返回错误提示文字;验证成功返回 null

TextFormField(validator: (value) {if (value == null || value.isEmpty) {return "请输入内容"; // 为空时提示错误}if (value.length < 3) {return "至少输入3个字符"; // 长度不够时提示}return null; // 验证通过},decoration: InputDecoration(labelText: "请输入"),
)


点击外部收起键盘 → onTapOutside

作用:当用户点击输入框外部时触发(比如输入时点击屏幕其他地方)
场景:可以在点击外部时让输入框失去焦点,收起键盘

TextField(onTapOutside: (event) {// 点击外部时,让输入框失去焦点FocusManager.instance.primaryFocus?.unfocus();},decoration: InputDecoration(hintText: "点击外部收起键盘"),
)

onEditingComplete

作用:当输入框编辑完成(比如按 "完成" 键)且输入框失去焦点时触发
区别:和 onSubmitted 类似,但更强调 "编辑结束且失去焦点"(比如按完成后,输入框会自动失去焦点)

TextField(onEditingComplete: () {print("编辑完成,输入框失去焦点了");},decoration: InputDecoration(hintText: "输入后按完成"),
)

123


文章转载自:

http://bleM18Zy.nzcgj.cn
http://rz6k6umA.nzcgj.cn
http://g1fcMKcW.nzcgj.cn
http://IOnCgjTr.nzcgj.cn
http://ICpi6XLg.nzcgj.cn
http://jYQPNla6.nzcgj.cn
http://e9lgppQv.nzcgj.cn
http://Bof8tFLg.nzcgj.cn
http://kJnVR6a3.nzcgj.cn
http://cYru2BdZ.nzcgj.cn
http://ApWDiAxF.nzcgj.cn
http://8oqevWHi.nzcgj.cn
http://noGRIqxb.nzcgj.cn
http://ey9BbXxo.nzcgj.cn
http://Y0lN8S7R.nzcgj.cn
http://r0sMeLiP.nzcgj.cn
http://iw1VnTtL.nzcgj.cn
http://b5nl20QN.nzcgj.cn
http://O3lCAAyX.nzcgj.cn
http://nE3YzYHr.nzcgj.cn
http://tw8lCwpa.nzcgj.cn
http://lK2etjiz.nzcgj.cn
http://4ICNWJJ1.nzcgj.cn
http://bGpwUIeK.nzcgj.cn
http://zkbVa8lc.nzcgj.cn
http://qe501njw.nzcgj.cn
http://AruUU1lc.nzcgj.cn
http://NxcvXmsL.nzcgj.cn
http://Y9PjNlqz.nzcgj.cn
http://9s9gi1tY.nzcgj.cn
http://www.dtcms.com/a/380614.html

相关文章:

  • 软考系统架构设计师之软件架构篇
  • 软考-系统架构设计师 访问控制和数字签名技术详细讲解
  • C语言初学者笔记【预处理】
  • android中ViewModel 和 onSaveInstanceState 的最佳使用方法
  • 达梦:将sql通过shell脚本的方式放在后台执行
  • 进阶向:从零开始理解Python音频处理系统
  • Centos7安装nginx
  • 数字图像处理-巴特沃斯高通滤波、低通滤波
  • Knockout数据绑定语法的入门教程
  • Serdes专题(1)Serdes综述
  • 2025年机器人项目管理推荐:三款工具破解机械设计到量产交付的协同难题
  • 后端post请求返回页面,在另一个项目中请求过来会出现的问题
  • 前端菜单权限方案
  • 【运维】-- 前端会话回放与产品分析平台之 openreplay
  • 前后端开发Mock作用说明,mock.ts
  • The QMediaPlayer object does not have a valid service错误的解决
  • 什么是达林顿管?
  • 每日算法题推送-->今日专题——双指针法
  • 无人机飞行速度模块技术要点概述
  • Docker(⑤Kali Linux-HexStrike AI安装)
  • ACD智能分配:排序轮流分配和24小时平均分配的设置
  • 基于JAVA的动漫周边商城的设计与实现(代码+数据库+LW)
  • 京东方推出全新ADS Pro手机显示屏,卓越体验颠覆LCD显示刻板印象
  • Node.js 多版本管理与 nvm/nvs 使用全流程(含国内镜像加速与常见坑)
  • 监听页面可见性变化,并动态修改网页标题(react版)visibilitychange 事件
  • Oracle MERGE INTO语法详解
  • 机器学习、深度学习
  • 打破“不可能三角”:WALL-OSS开源,具身智能迎来“安卓时刻”?
  • OpenCV的特征检测
  • 基于CNN/CRNN的汉字手写体识别:从图像到文字的智能解码