Flutter GetX的事件监听
Flutter GetX的事件监听
- import 'package:flutter/material.dart';
- import 'package:flutter_code/page/book/bookEntity.dart';
- import 'package:get/get.dart';
- class MyBook extends StatelessWidget {
- const MyBook({super.key});
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- backgroundColor: Colors.red, //导航背景颜色
- title: Text("我的Get"),
- ),
- body: myHome(),
- );
- }
- }
- class myHome extends StatefulWidget {
- const myHome({super.key});
- @override
- State<myHome> createState() => _myHomeState();
- }
- class _myHomeState extends State<myHome> {
- BookEntity bookEntity = Get.find<BookEntity>(); //实例化控制器
- @override
- void initState() {
- // TODO: implement initState
- super.initState();
- ever(bookEntity.BookId, (value) {
- print('监听bookId1 $value');
- });
- // 监听bookId的变化
- bookEntity.BookId.listen((value) {
- print('监听bookId2 $value');
- });
- everAll([bookEntity.BookId, bookEntity.LetterId], (value) {
- //BookId与LetterId任意一个发生变化时监听
- print('BookId与LetterId任意一个发生变化时监听 $value');
- });
- bookEntity.addListener(() {
- //对象中任意一个发生变化就会被监听
- print('监听全部_________________________');
- });
- // count值改变时调用,只执行一次
- once(
- bookEntity.BookId, //监听值
- (callback) => print(
- "once---------${bookEntity.BookId},${bookEntity.LetterId},-----------"));
- // 值在1秒中不断改变,当值已经超过1秒后,不再改变,才调用,主要是防DDos
- debounce(
- bookEntity.BookId, //监听值
- (callback) => print(
- "debounce-----${bookEntity.BookId},${bookEntity.LetterId},-----监听count1的值,停止输入1秒后--执行------"));
- // // 忽略3秒内的所有变动,有输入值时,3秒内会执行一次,如一直在输入,连续输入9秒,会每隔3秒执行一次
- // 用于微信对方正在输入中
- interval(
- bookEntity.BookId, //监听count1的值
- (callback) => print(
- "interval-----${bookEntity.BookId},${bookEntity.LetterId},-----监听count1的值----忽略3秒内的所有变动------"));
- }
- @override
- Widget build(BuildContext context) {
- return Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Obx(() => Text("bookid: ${bookEntity.BookId}")),
- ElevatedButton(
- onPressed: () {
- bookEntity.setBookId(bookEntity.BookId + 1);
- },
- child: const Text("bookid 加1")),
- Obx(() => Text("LetterId: ${bookEntity.LetterId}")),
- ElevatedButton(
- onPressed: () {
- bookEntity.setLetterId(bookEntity.LetterId + 1);
- },
- child: const Text("LetterId 加1")),
- ],
- ),
- );
- }
- }
Flutter GetX的事件监听的更多相关文章
- 26 Flutter仿京东商城项目 购物车之 event_bus事件广播 事件监听
event_bus 介绍 在前面的课程我们给大家讲过状态管理 Provider 的使用. 通俗的讲状态管理就是:当我们想在多个页面(组件/Widget)之间共享状态(数据),或 者一个页面(组件/Wi ...
- java 事件监听 - 鼠标
java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...
- Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- Java自学-图形界面 事件监听
Swing 如何进行事件监听 示例 1 : 按钮监听 创建一个匿名类实现ActionListener接口,当按钮被点击时,actionPerformed方法就会被调用 package gui; imp ...
- Java中用得比较顺手的事件监听
第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...
- 4.JAVA之GUI编程事件监听机制
事件监听机制的特点: 1.事件源 2.事件 3.监听器 4.事件处理 事件源:就是awt包或者swing包中的那些图形用户界面组件.(如:按钮) 事件:每一个事件源都有自己特点有的对应事件和共性事件. ...
- Node.js 教程 05 - EventEmitter(事件监听/发射器 )
目录: 前言 Node.js事件驱动介绍 Node.js事件 注册并发射自定义Node.js事件 EventEmitter介绍 EventEmitter常用的API error事件 继承EventEm ...
- .NET事件监听机制的局限与扩展
.NET中把“事件”看作一个基本的编程概念,并提供了非常优美的语法支持,对比如下C#和Java代码可以看出两种语言设计思想之间的差异. // C#someButton.Click += OnSomeB ...
- 让 select 的 option 标签支持事件监听(如复制操作)
这标题,让option支持事件监听,应该不难的呀,有什么好讲的? 其实还是有的,默认在浏览器代码是无法直接对option标签进行操作的,不仅包括JS事件监听,还是CSS样式设置 查了一些资料,姑且认为 ...
- [JS]笔记12之事件机制--事件冒泡和捕获--事件监听--阻止事件传播
-->事件冒泡和捕获-->事件监听-->阻止事件传播 一.事件冒泡和捕获 1.概念:当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,点击子元素时,父元素的oncl ...
随机推荐
- android开发阶段性技能
一.初级 1. 拥有娴熟的Java基础,理解设计模式,比如OOP语言的工厂模式要懂得. 2. 掌握Android UI控件.Android Java层API相关使用. 迈向中级,最好再次更新下Java ...
- 【最佳实践】MongoDB导入数据时重建索引
MongoDB一个广为诟病的问题是,大量数据resotore时索引重建非常缓慢,实测5000万的集合如果有3个以上的索引需要恢复,几乎没法成功,而且resotore时如果选择创建索引也会存在索引不生效 ...
- [ABC216G] 01Sequence 题解
01Sequence 题目大意 构造一个满足 \(m\) 个形如 \((l,r,x)\) 的限制条件的 \(01\) 序列,其中 \((l,r,x)\) 表示区间 \([l,r]\) 的和不小于 \( ...
- 虹科分享 | HPC调度解决方案:HK-Adaptive在数字卫星图像领域的应用
2011年3月11日,日本海岸附近发生了9.0级地震.这次地震引发了强大的海啸,并向内陆传播了6英里,不仅使地球的轴心偏移了大约10到25厘米,还导致福岛核电站发生核紧急情况. 为了减少这场灾害的损失 ...
- 9.26 多校联测 Day 5 总结
虽然比赛还没打完,但是因为又罚坐了,提前把总结写出来吧() 看 T1,构造了一会发现大概就是把 b 序列放在 a 的最后面,前面位置填几个数. 先码了暴力,再码正解.但求出来的方案显然不是同一种/fn ...
- 栈源代码(c++)
stack.h #ifndef STACK_H_ #define STACK_H_ #include<iostream> template<class T> struct No ...
- springboot项目在docker中运行
前端时间需要把项目打包到docker中运行,于是就让组员去探索,最后整个过程是这样的. 首先我们做java开发,一般都是使用springboot开发,开发完成,我们需要把springboot项目打包成 ...
- Android 应用接入 Firebase Crashlytics 进行崩溃分析上报
前言 所在公司的项目中有一款应用应客户要求,需要接入 Firebase Crashlytics,在此提前练手,也做个总结.本文以最新的 Gradle 7.5 为例,如果 Gradle 版本比较低,添加 ...
- LeetCode-Java:88合并两个有序数组
题目: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目. 请你 合并 nums2 到 nums1 中 ...
- JavaWeb项目中web.xml配置文件<servlet-class>…</servlet-class>中的路径出现问题以及服务器错误的解决办法
问题如图 原因: 1.改变了 WEB-INF 文件夹下 lib 文件夹下 servlet-api.jar 的路径2.缺失lib文件夹下的 servlet-api.jar,没有添加到库中 解决办法: 不 ...