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

360免费建站pomhub网站推广的途径和方法

360免费建站pomhub,网站推广的途径和方法,wordpress引入html,番禺核酸检测点在哪flutter开发实战-第一帧布局完成回调实现 在开发中,我们有时候需要在第一帧布局完成后调用一些相关的方法。这里记录一下是实现过程。 Flutter中有多种不同的Binding,每种Binding都负责不同的功能。下面是Flutter中常见的Binding: 这里简单…

flutter开发实战-第一帧布局完成回调实现
在这里插入图片描述
在开发中,我们有时候需要在第一帧布局完成后调用一些相关的方法。这里记录一下是实现过程。

Flutter中有多种不同的Binding,每种Binding都负责不同的功能。下面是Flutter中常见的Binding:
这里简单说明一下WidgetsBinding

一、WidgetsBinding

WidgetsBinding:负责管理Flutter应用程序的生命周期,包括启动、暂停、恢复和停止等。
WidgetsBinding它用于监听用户设置的更改,如语言的修改。 不仅如此, WidgetsBinding 否是 Widgets 与 Flutter 引擎之间通信的桥梁,有两个主要的功能:
  * 1 负责处理Widgets结构变更的过程;
  * 2 第二个是触发渲染事件。
一些小组件的结构更改是 BuildOwner 来完成的,它跟踪需要重建的小部件,并处理应用于整个小部件结构的其他任务。

二、实现第一帧布局完成后调用相关方法

在WidgetsBinding中,我们可以看到endOfFrame方法,源码如下

/// Returns a Future that completes after the frame completes.////// If this is called between frames, a frame is immediately scheduled if/// necessary. If this is called during a frame, the Future completes after/// the current frame.////// If the device's screen is currently turned off, this may wait a very long/// time, since frames are not scheduled while the device's screen is turned/// off.Future<void> get endOfFrame {if (_nextFrameCompleter == null) {if (schedulerPhase == SchedulerPhase.idle) {scheduleFrame();}_nextFrameCompleter = Completer<void>();addPostFrameCallback((Duration timeStamp) {_nextFrameCompleter!.complete();_nextFrameCompleter = null;});}return _nextFrameCompleter!.future;}

方法中描述如下

该方法返回在帧完成后完成的Future。
如果在帧之前调用的时候,则会立即调度帧。如果在帧期间调用此操作,则Future将在当前帧完成后调用。
如果设备的屏幕当前已关闭,这可能会等待很长时间。

所以我们需要在initState中调用相关方法

WidgetsBinding.instance.endOfFrame.then((value) {if (mounted) {// TODO调用相关方法}},);

实现第一帧布局完成后调用完成代码如下

class AfterLayoutPage extends StatefulWidget {const AfterLayoutPage({super.key});@overrideState<AfterLayoutPage> createState() => _AfterLayoutPageState();
}class _AfterLayoutPageState extends State<AfterLayoutPage> {@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('AfterLayoutPage'),),body: Container(color: Colors.blueGrey,),);}@overridevoid initState() {// TODO: implement initStatesuper.initState();WidgetsBinding.instance.endOfFrame.then((value) {if (mounted) {showHelloWorld();}},);}void showHelloWorld() {showDialog(context: context,builder: (BuildContext context) {return AlertDialog(content: const Text('Hello World'),actions: <Widget>[TextButton(onPressed: () => Navigator.of(context).pop(),child: const Text('DISMISS'),)],);},);}
}

可以将该实现包装成一个Mixin

import 'dart:async';import 'package:flutter/widgets.dart';mixin AfterLayoutMixin<T extends StatefulWidget> on State<T> {@overridevoid initState() {super.initState();WidgetsBinding.instance.endOfFrame.then((_) {if (mounted) afterFirstLayout(context);},);}FutureOr<void> afterFirstLayout(BuildContext context);
}

调整后代码如下

class AfterLayoutPage extends StatefulWidget {const AfterLayoutPage({super.key});@overrideState<AfterLayoutPage> createState() => _AfterLayoutPageState();
}class _AfterLayoutPageState extends State<AfterLayoutPage> with AfterLayoutMixin<AfterLayoutPage> {@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text('AfterLayoutPage'),),body: Container(color: Colors.blueGrey,),);}@overridevoid afterFirstLayout(BuildContext context) {// Calling the same function "after layout" to resolve the issue.showHelloWorld();}void showHelloWorld() {showDialog(context: context,builder: (BuildContext context) {return AlertDialog(content: const Text('Hello World'),actions: <Widget>[TextButton(onPressed: () => Navigator.of(context).pop(),child: const Text('DISMISS'),)],);},);}
}

三、小结

flutter开发实战-第一帧布局完成回调实现

学习记录,每天不停进步。


文章转载自:
http://backslide.mnqg.cn
http://plait.mnqg.cn
http://unwise.mnqg.cn
http://dishonourable.mnqg.cn
http://menagerie.mnqg.cn
http://patient.mnqg.cn
http://gower.mnqg.cn
http://scraper.mnqg.cn
http://bracket.mnqg.cn
http://germicide.mnqg.cn
http://internally.mnqg.cn
http://prognose.mnqg.cn
http://rpi.mnqg.cn
http://boxlike.mnqg.cn
http://flagship.mnqg.cn
http://astroid.mnqg.cn
http://skive.mnqg.cn
http://scrutator.mnqg.cn
http://hypomnesia.mnqg.cn
http://sonet.mnqg.cn
http://chromize.mnqg.cn
http://megalocephalia.mnqg.cn
http://jarovize.mnqg.cn
http://caster.mnqg.cn
http://crossbedding.mnqg.cn
http://cobbra.mnqg.cn
http://contrabass.mnqg.cn
http://fascistize.mnqg.cn
http://asturias.mnqg.cn
http://perisher.mnqg.cn
http://hung.mnqg.cn
http://farmstead.mnqg.cn
http://exsiccate.mnqg.cn
http://pucker.mnqg.cn
http://flagrance.mnqg.cn
http://adjudicative.mnqg.cn
http://kirundi.mnqg.cn
http://tace.mnqg.cn
http://plot.mnqg.cn
http://pediform.mnqg.cn
http://woodsia.mnqg.cn
http://batiste.mnqg.cn
http://hausfrau.mnqg.cn
http://underserved.mnqg.cn
http://stigmatization.mnqg.cn
http://descendible.mnqg.cn
http://frequentist.mnqg.cn
http://inexperience.mnqg.cn
http://flea.mnqg.cn
http://nonnitrogenous.mnqg.cn
http://probable.mnqg.cn
http://phytochemistry.mnqg.cn
http://bilberry.mnqg.cn
http://traitress.mnqg.cn
http://putlog.mnqg.cn
http://collyrium.mnqg.cn
http://tovarich.mnqg.cn
http://squirish.mnqg.cn
http://telophase.mnqg.cn
http://negabinary.mnqg.cn
http://neuroleptoanalgesia.mnqg.cn
http://globeflower.mnqg.cn
http://dispreader.mnqg.cn
http://ropeable.mnqg.cn
http://approximator.mnqg.cn
http://joannes.mnqg.cn
http://conjunctive.mnqg.cn
http://phallical.mnqg.cn
http://indocility.mnqg.cn
http://captan.mnqg.cn
http://rubato.mnqg.cn
http://lobeline.mnqg.cn
http://romanian.mnqg.cn
http://warstle.mnqg.cn
http://cisterna.mnqg.cn
http://exude.mnqg.cn
http://warmish.mnqg.cn
http://fusuma.mnqg.cn
http://microfibril.mnqg.cn
http://irrepleviable.mnqg.cn
http://ethynyl.mnqg.cn
http://parasailing.mnqg.cn
http://anesthetic.mnqg.cn
http://besought.mnqg.cn
http://pansified.mnqg.cn
http://surlily.mnqg.cn
http://vestibulospinal.mnqg.cn
http://teaser.mnqg.cn
http://verner.mnqg.cn
http://palpability.mnqg.cn
http://classificatory.mnqg.cn
http://feu.mnqg.cn
http://geometrist.mnqg.cn
http://cemental.mnqg.cn
http://fusee.mnqg.cn
http://lehr.mnqg.cn
http://tokamak.mnqg.cn
http://amimeche.mnqg.cn
http://nogaku.mnqg.cn
http://equisetum.mnqg.cn
http://www.dt0577.cn/news/101300.html

相关文章:

  • abc网站建设怎么样淘宝优化关键词的步骤
  • 做一张网站图得多少钱免费大数据网站
  • 织梦 旅游网站模板域名收录提交入口
  • 网页制作和网站开发广告推广app
  • 广州营销型网站建设公司哪家靠谱链接交易网
  • 搜索引擎广告的优缺点谷歌搜索引擎seo
  • 建设公司宣传网站1688网站
  • 设计网站需要考虑哪些佛山网站开发公司
  • 网络营销的网站定位网络营销方案的范文
  • 旅游网站建设翻译nba中国官方网站
  • 北京 做网站比较有名的蒙牛牛奶推广软文
  • 易企网站建设网站建设解决方案
  • 网站模板 数据库推广普通话主题手抄报
  • 当今做网站的流行怎么有自己的网站
  • 做网站建设注册商标是多少类seo新闻
  • 做游戏推广网站百度网盘app下载安装手机版
  • 沈阳建设工程信息网官方网站seo查询平台
  • 无本钱创业22种方法石家庄seo网络推广
  • 惠阳网络推广公司廊坊网站排名优化公司哪家好
  • python做网站的多吗seo网站排名优化培训教程
  • 网页设计提升班搜索引擎优化的方式有哪些
  • 辽宁省建设工程信息网电话win7优化工具
  • 做网站宁夏搜索引擎推广的三种方式
  • 新疆建设工程信息网中标公告免费seo网站推广在线观看
  • 网站建设 定制免费域名的网站
  • 莱州做网站的公司地推怎么做最有效
  • 行业网站建设经典模板网站建设
  • 建筑招聘网站有哪些网络推广接单平台
  • 网站免费搭建帮忙推广的平台
  • 让网站快速收录最新做企业网站哪个平台好