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

Flutter基础(UI监听)

文本按钮(TextButton)

文本按钮是没有边框的按钮,当点击时会有涟漪效果。

TextButton(onPressed: () {// 点击按钮后要执行的代码print('文本按钮被点击了');},child: Text('点击我'),
)

手势检测器(GestureDetector)

GestureDetector 能够检测多种手势,不只是点击,还包括滑动、长按等。

GestureDetector(onTap: () {// 点击组件后要执行的代码print('组件被点击了');},onLongPress: () {// 长按组件后要执行的代码print('组件被长按了');},child: Container(width: 200,height: 50,color: Colors.green,child: Center(child: Text('手势检测容器')),),
)

处理带参数的点击事件

要是你需要在点击事件处理函数中传递参数,可以使用闭包来实现。

void handleClick(String value) {print('点击的值是: $value');
}// 在UI中使用
ElevatedButton(onPressed: () => handleClick('按钮1'),child: Text('按钮1'),
)

文本输入监听

监听用户在文本框中的输入内容,常用于表单验证、搜索等场景。

TextField(onChanged: (text) {// 文本内容变化时触发print('输入的内容: $text');},onSubmitted: (text) {// 用户按下回车键时触发print('提交的内容: $text');},
)

滚动监听

监听ListViewGridView等滚动组件的位置,可用于实现下拉刷新、加载更多、吸顶效果等。

ScrollController _controller = ScrollController();@override
void initState() {super.initState();_controller.addListener(() {// 滚动位置变化时触发print('当前滚动位置: ${_controller.position.pixels}');// 判断是否滚动到底部if (_controller.position.pixels == _controller.position.maxScrollExtent) {print('已滚动到底部');// 加载更多数据...}});
}@override
Widget build(BuildContext context) {return ListView.builder(controller: _controller,itemCount: 100,itemBuilder: (context, index) => ListTile(title: Text('Item $index')),);
}

相关文章:

  • MyBatis 缓存机制详解
  • Nestjs框架: nestjs-bull的使用与相关queue的规划
  • 【RAG面试题】LLMs已经具备了较强能力,存在哪些不足点?
  • day49-硬件学习之I2C(续)
  • TTvideo免费开源PC录屏软件
  • UE--Slate 焦点、捕获,输入处理与玩家控制器的关系
  • 【 MyBatis-Plus | 精讲 】
  • 1 Studying《Is Parallel Programming Hard》1-5
  • 【网络安全】密码学知识普及
  • leetcode.2014 重复k次的最长子序列
  • Unity 脚本自动添加头部注释
  • 不同信创系统如何集中远程运维?贝锐向日葵提供稳定方案
  • 科技如何影响我们的生活?
  • word中如何保存高清图片,并保存为高质量的pdf文件(图像不失真)
  • uniappx 安卓app项目本地打包运行,腾讯地图报错:‘鉴权失败,请检查你的key‘
  • CSS3实现同心圆效果
  • 系统架构设计师论文分享-论单元测试方法及其应用
  • SolidWorks 镜像实体操作指南:解决镜像失败的常见问题
  • Oracle/PostgreSQL/MSSQL/MySQL函数实现对照表
  • SQL Server for Linux 如何实现高可用架构