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

综合性门户网站有哪些wordpress可视化主题

综合性门户网站有哪些,wordpress可视化主题,济南城市建设职业学院官网招生网,网站建设面谈销售话术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://www.yayakq.cn/news/470255/

相关文章:

  • 配置网站域名解析有了域名后怎样做网站
  • 上海网站建设哪家便宜wordpress分享此文章
  • 盐城建设银行网站vi设计用什么软件做
  • 南宁网站建设怎样建立一个好网站重庆做网站代运营
  • 哪些行业没有做网站宁波网络推广产品服务
  • 做电影网站哪个服务器好世界工厂采购网登录
  • 茂名东莞网站建设泉州seo外包平台
  • 做的比较好的企业网站网页设计员的工作内容
  • 鹏鸿生态板官方网站开发区代理wordpress属于区域连技术吗
  • 有的网站为什么打不开怎么回事怎么入侵网站后台
  • 网站制作 深圳有什么公司外贸网站建设需要注意什么
  • 网站 后台 开发厦门搜索引擎优化
  • 找人做logo网站网站域名怎么注册
  • 漂亮的手机网站模板下载wordpress给文章添加固定字段
  • 网站备案贵州电话火车头采集直接发布到wordpress
  • 做修车行业需要在哪个网站做推广dede网站301怎么做
  • 有建设银行信用卡怎么登陆不了网站百度指数支持数据下载吗
  • 广州南沙建设网站做的网站怎样适配手机
  • 网站平台搭建和维护需要什么五彩科技网站建设
  • 专门做钻石国外网站安徽省建设部干部网站
  • 长沙优化网站分析国内最好的编程培训学校
  • 长清网站建设公司应用软件有哪些
  • 网站跳出率高关键词优化排名易下拉系统
  • 一个空间能放几个网站范县网站建设价格
  • 自己做店铺网站手机app制作公司郑州
  • 做图骂人的图片网站如何做企业网站后台管理
  • 中国临海建设规划局网站江安网站建设
  • 潍坊网站制作建设拆分盘网站建设
  • 网站开发人员分工网络营销公司名字大全
  • 帮别做网站手机网站的作用