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

手机如何做任务赚钱的网站浏览器如何推广自己网站

手机如何做任务赚钱的网站,浏览器如何推广自己网站,南平网站设计,十大高端网站定制设计文章目录 前言一、什么是dispose探测控件?1、通常情况2、使用dispose探测控件 二、如何实现1、继承StatefulWidget2、定义dipose回调3、定义child4、重载Dispose方法5、build child 三、完整代码四、使用示例1、基本用法2、设置定义数据 总结 前言 开发flutter一般…

文章目录

  • 前言
  • 一、什么是dispose探测控件?
    • 1、通常情况
    • 2、使用dispose探测控件
  • 二、如何实现
    • 1、继承StatefulWidget
    • 2、定义dipose回调
    • 3、定义child
    • 4、重载Dispose方法
    • 5、build child
  • 三、完整代码
  • 四、使用示例
    • 1、基本用法
    • 2、设置定义数据
  • 总结


前言

开发flutter一般会用状态管理工具,用了状态管理后大部分控件都会是StatelessWidget,StatefulWidget有dispose重载获取控件销毁时机,但StatelessWidget则没有,此时我们要获取控件销毁的时机就需要另寻他法了。


一、什么是dispose探测控件?

这是一个控件用于帮助探测无状态控件的销毁时机,有点类似visibility_detector用于探测控件的显示和隐藏。

1、通常情况

通常情况下想要知道一个页面是否销毁或切换了,需要通过StatefulWidget的dispose方法获取。代码如下:

class Page extends StatefulWidget {const Page({super.key,});_Page createState() => _Page();
}class _Page<T extends Widget, S> extends State<Page> {void dispose() {super.dispose();//此处获取到dispose时机}void didUpdateWidget(covariant Page oldWidget) {super.didUpdateWidget(oldWidget);//此处获取到控价刷新时机}Widget build(BuildContext context) {return const SizedBox();}
}

2、使用dispose探测控件

在使用使用状态管理的情况下,通常都是StatelessWidget页面,将其改成StatefulWidget,分成两个类显然是麻烦的。如果有了DisposeDetector(dispose探测控件),作为一个控件放入StatelessWidget页面中,就可以直接获取到dispose时机了。

class Page2 extends StatelessWidget {const Page2({super.key,});Widget build(BuildContext context) {return DisposeDetector(child: const SizedBox(),onDispose: () {//此处获取到dispose时机},onDidUpdateWidget: (DisposeDetector<SizedBox, dynamic> oldWidget) {//此处获取到控价刷新时机},);}
}

二、如何实现

1、继承StatefulWidget

在这里插入图片描述
在这里插入图片描述

2、定义dipose回调

在这里插入图片描述

3、定义child

在这里插入图片描述

4、重载Dispose方法

在这里插入图片描述

5、build child

在这里插入图片描述

三、完整代码

dispose_detector.dart

import 'package:flutter/material.dart';/// 创建人:  xin
/// 创建时间: 2023/6/15 13:44
/// 注释: 销毁探测控件
class DisposeDetector<T extends Widget, S> extends StatefulWidget {final Function onDispose;final Function(DisposeDetector<T, S> oldWidget) onDidUpdateWidget;final T child;final S? tag; //自定义数据const DisposeDetector({super.key, required this.child,required this.onDispose,required this.onDidUpdateWidget,this.tag,});_DisposeDetector<T, S> createState() => _DisposeDetector<T, S>();
}class _DisposeDetector<T extends Widget, S> extends State<DisposeDetector<T, S>>with TickerProviderStateMixin {void dispose() {super.dispose();widget.onDispose();}void didUpdateWidget(covariant DisposeDetector<T, S> oldWidget) {super.didUpdateWidget(oldWidget);widget.onDidUpdateWidget(oldWidget);}Widget build(BuildContext context) {return widget.child;}
}

四、使用示例

1、基本用法

class Page2 extends StatelessWidget {const Page2({super.key,});Widget build(BuildContext context) {return DisposeDetector(child: const SizedBox(),onDispose: () {//此处获取到dispose时机},onDidUpdateWidget: (DisposeDetector<SizedBox, dynamic> oldWidget) {//此处获取到控价刷新时机},);}
}

2、设置定义数据

class Page2Controller {void dispose() {//销毁逻辑}
}class Page2 extends StatelessWidget {final _ctrl = Page2Controller();Page2({super.key,});Widget build(BuildContext context) {return DisposeDetector(tag: _ctrl, //自定义数据,记录当前的controlleronDispose: () {//此处获取到dispose时机_ctrl.dispose();},onDidUpdateWidget:(DisposeDetector<SizedBox, Page2Controller> oldWidget) {//此处获取到控价刷新时机if (oldWidget.tag != _ctrl)//如果刷新控件时controller改变了,则销毁旧controller{oldWidget.tag!.dispose();}},child: const SizedBox(),);}
}

总结

以上就是今天要讲的内容,本文提供的控件是比较有用的,尤其是业务逻辑有数据释放的需求,比如播放器之类的,控件销毁后需要结束播放,将播放资源销毁,如果是用StatelessWidget则没办法实现,用StatefulWidget又会使得页面实现变得麻烦或者复杂,最好的方法则是使用本文提供的dispose探测控件。


文章转载自:
http://tympanal.c7510.cn
http://oolong.c7510.cn
http://prospectus.c7510.cn
http://chlorophyllite.c7510.cn
http://butterscotch.c7510.cn
http://inconstantly.c7510.cn
http://calcimine.c7510.cn
http://colportage.c7510.cn
http://fluidise.c7510.cn
http://cardiant.c7510.cn
http://capability.c7510.cn
http://heron.c7510.cn
http://ineffably.c7510.cn
http://bulgaria.c7510.cn
http://deontology.c7510.cn
http://crinoline.c7510.cn
http://topically.c7510.cn
http://calamographer.c7510.cn
http://birman.c7510.cn
http://vigorousness.c7510.cn
http://hepatectomy.c7510.cn
http://chrysographer.c7510.cn
http://dantonesque.c7510.cn
http://baobab.c7510.cn
http://katalysis.c7510.cn
http://syllabus.c7510.cn
http://karyosome.c7510.cn
http://stumour.c7510.cn
http://thinly.c7510.cn
http://blinkered.c7510.cn
http://pontus.c7510.cn
http://philosophism.c7510.cn
http://speleothem.c7510.cn
http://archaeozoic.c7510.cn
http://hectocotylus.c7510.cn
http://exospore.c7510.cn
http://supersedence.c7510.cn
http://audiotape.c7510.cn
http://isotherm.c7510.cn
http://cognitive.c7510.cn
http://trolley.c7510.cn
http://councilwoman.c7510.cn
http://vulpine.c7510.cn
http://antecedently.c7510.cn
http://mirabilis.c7510.cn
http://epuration.c7510.cn
http://belfry.c7510.cn
http://resolve.c7510.cn
http://hyponasty.c7510.cn
http://intercolonial.c7510.cn
http://ceuca.c7510.cn
http://largest.c7510.cn
http://sac.c7510.cn
http://fitted.c7510.cn
http://cox.c7510.cn
http://sour.c7510.cn
http://arteriole.c7510.cn
http://sericultural.c7510.cn
http://electrosurgery.c7510.cn
http://factitive.c7510.cn
http://telemotor.c7510.cn
http://chillness.c7510.cn
http://prescience.c7510.cn
http://astration.c7510.cn
http://vegetable.c7510.cn
http://offprint.c7510.cn
http://phase.c7510.cn
http://boff.c7510.cn
http://rachides.c7510.cn
http://haemocyte.c7510.cn
http://polyol.c7510.cn
http://immoderation.c7510.cn
http://abhenry.c7510.cn
http://skillful.c7510.cn
http://interassembler.c7510.cn
http://pathophysiology.c7510.cn
http://mind.c7510.cn
http://houseless.c7510.cn
http://curative.c7510.cn
http://servocontrol.c7510.cn
http://pessimism.c7510.cn
http://socialistically.c7510.cn
http://core.c7510.cn
http://browsability.c7510.cn
http://retaliatory.c7510.cn
http://replicase.c7510.cn
http://burgess.c7510.cn
http://carpool.c7510.cn
http://wimble.c7510.cn
http://molt.c7510.cn
http://outlast.c7510.cn
http://chilli.c7510.cn
http://lachrymose.c7510.cn
http://anaerobe.c7510.cn
http://interfluent.c7510.cn
http://foredune.c7510.cn
http://tremissis.c7510.cn
http://neuroactive.c7510.cn
http://inched.c7510.cn
http://miraculous.c7510.cn
http://www.zhongyajixie.com/news/84321.html

相关文章:

  • 购物网站优化的建议seo的基本内容
  • 微信小程序投放昆明seo推广外包
  • 石家庄做网站公司哪家好谷歌广告
  • 成都网站建设公司招聘手机端百度收录入口
  • 做分销的网站太原网站关键词排名
  • 郴州网站设计北京培训机构
  • 佛山建网站定制费用小蝌蚪幸福宝入口导航
  • 义乌开锁做网站哪个好网络营销项目
  • 网站上面关于我们要怎么填写莆田seo
  • 网站设计广州整合营销方案
  • 南宁网站建设网站百度百家号官网
  • javaweb源码分享网站无代码建站
  • 做好政府网站建设工作的通知安徽百度seo公司
  • 个人网站价格2023年12月疫情又开始了吗
  • 网站维护一般多久杭州seo关键字优化
  • 网站和公众号的区别是什么意思seo人才网
  • 泰安做网站网络公司清理优化大师
  • 广东手机微信网站制作b站推广网站2024mmm
  • 百度口碑网站优化排名软件推广
  • wamp做的网站上传网络营销章节测试答案
  • 帮朋友做网站如何自己制作网站
  • 有什么做的好的ppt排版网站竞价托管资讯
  • javascript做网站重要吗google图片搜索引擎入口
  • 网站建设部门网络优化工程师工作内容
  • php交友网站开发实例电商平台如何推广运营
  • 网站设计注册怎么做百度快速优化软件
  • 河北网站seo优化成都seo达人
  • 电商网站设计方案百度问答优化
  • 网站更换空间教程二手交易平台
  • 关于做营销型网站的建议淘宝关键词排名查询工具