首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码应该写在super.initState()之前,还是在Flutter之后?

在Flutter中,代码应该写在super.initState()之后。

在Flutter中,super.initState()是StatefulWidget的initState()方法的第一行代码,它用于执行父类的初始化逻辑。在这之后,可以编写自定义的初始化逻辑和其他代码。

写在super.initState()之后的代码可以确保在父类初始化完成后再执行,避免可能出现的错误。这样可以保证在组件初始化时,所有必要的资源都已经准备好,可以正常运行。

需要注意的是,如果在super.initState()之前编写代码,可能会导致一些依赖父类初始化的操作无法正常执行,从而引发错误或异常。

总结起来,为了保证代码的正确执行顺序,应该将代码写在super.initState()之后。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java finally 语句到底是 return 之前还是之后执行?

1 finally语句return语句执行之后return返回之前执行的 2 finally块中的return语句会覆盖try块中的return返回 3 如果finally语句中没有return语句覆盖返回值...try中return的执行情况完全一样 6 最后总结 1 finally语句return语句执行之后return返回之前执行的 public class FinallyTest1 { public...这就是Java到底是传值还是传址的问题了,简单来说就是:Java中只有传值没有传址,这也是为什么map = null这句不起作用。...当然只有异常的情况下才有可能会执行,那么是finally之前就返回吗?看下面。...6 最后总结 finally块的语句try或catch中的return语句执行之后返回之前执行且finally里的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值,若finally

1.1K10

Java finally语句到底是return之前还是之后执行?

当然还有很多人探讨Finally语句的执行与return的关系,颇为让人迷惑,不知道finally语句是try的return之前执行还是之后执行?...我也是一头雾水,我觉得他们的说法都不正确,我觉得应该是:finally语句是try的return语句执行之后,return返回之前执行。...1. finally语句return语句执行之后return返回之前执行的。...当然只有异常的情况下才有可能会执行,那么是finally之前就返回吗?看下面。 5....最后总结:finally块的语句try或catch中的return语句执行之后返回之前执行且finally里的修改语句不能影响try或catch中return已经确定的返回值,若finally里也有return

1.3K20

Java finally语句到底是return之前还是之后执行?

当然还有很多人探讨Finally语句的执行与return的关系,颇为让人迷惑,不知道finally语句是try的return之前执行还是之后执行?...我也是一头雾水,我觉得他们的说法都不正确,我觉得应该是:finally语句是try的return语句执行之后,return返回之前执行。...finally语句return语句执行之后return返回之前执行的。...当然只有异常的情况下才有可能会执行,那么是finally之前就返回吗?看下面。 当发生异常后,catch中的return执行情况与未发生异常时try中return的执行情况完全一样。...最后总结: finally块的语句try或catch中的return语句执行之后返回之前执行且finally里的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值,若finally

79020

Java finally语句到底是return之前还是之后执行?

当然还有很多人探讨Finally语句的执行与return的关系,颇为让人迷惑,不知道finally语句是try的return之前执行还是之后执行?我也是一头雾水,我觉得他们的说法都不正确。...我觉得应该是:finally语句是try的return语句执行之后,return返回之前执行。...1. finally语句return语句执行之后return返回之前执行的。...当然只有异常的情况下才有可能会执行,那么是finally之前就返回吗?看下面。 5. 当发生异常后,catch中的return执行情况与未发生异常时try中return的执行情况完全一样。...最后总结 finally块的语句try或catch中的return语句执行之后返回之前执行且finally里的修改语句可能影响也可能不影响try或catch中 return已经确定的返回值,若finally

77020

IQE13: 晕影(Vignetting)消除应该在Gamma校正之前还是之后

前言 我的知识星球中,我正在教大家如何编程实现摄影图像的后期处理与优化。目前我的进度图像的畸变校正这一部分,如下图所示: 这里我所说的畸变校正包括了两个部分。...肉眼看起来已经可以看到左侧的图像的边角要显得稍微暗一点点,并且之前提到的区域似乎保留了更多的细节 左图:Gamma编码前做晕影消除,右图:Gamma编码后做晕影消除 再看看细节对比。...Gamma校正前做晕影消除,既能够提亮图像边角,又不像在Gamma校正后才做晕影消除将边角提亮得那么夸张: Gamma校正前后做晕影消除的对比 而且很明显,Gamma校正后做晕影消除,丢失了很多细节...Gamma校正的过程会提亮图像 所以按照这个模型,我们真正的流程至少是: 晕影消除应该在Gamma编码前才符合原理 这就是关键点!...总结 通过今天的文章,我想你已经明白了:晕影校正应该在线性空间中进行,至少应该在Gamma编码之前进行,我们后续还会讲到去除色差,这个动作也应该在线性空间中进行。 六.

54940

【漫画】finally到底是return之前执行还是return之后执行?

某些情况下,try语句压根就没有执行到,那么finally语句也一定就不会执行到了。...虚拟机种,有虚拟机栈,上面的代码中每一个方法都对应了一个栈帧,方法的执行对应的栈帧入栈,方法的执行完毕对应着栈帧的出栈。...第一段代码中的finally块中,虽然执行了i += 10,但是由于没有return,所以局部变量表中的内容没有变化,所以i还是10; 第二段代码中的finally块中,由于最后return i语句的执行...而这个时候也就意味着,return返回是最后执行的,所以finally语句是retrun返回之前执行的!...语句执行后,return返回之前执行的,也就是说finally必执行(当然是建立try执行的基础上) finally中修改的基本类型没有return是不影响返回结果的,有了retrun才会影响 finally

67820

从渲染原理剖析如何提高 Flutter 应用性能

Flutter 性能概述 1.1 Flutter 基本渲染原理 我们讨论如何对 Flutter 进行性能优化之前,首先得掌握 Flutter 的渲染原理,这样才能更好的对症下药。...渲染流程图.png 根据上图,我们可知 Flutter 的主要渲染流程:初次渲染时,我们会根据我们自己的业务代码,分别构建 Widget、 Element 以及 RenderObject 三棵树,其次对...调用 Java 代码,然后再通过 Java 代码去调用 Skia 图形引擎,相较于 Flutter 多一层调用,所以性能也会存在丢失。...比如在使用 ListView 这样的滑动组件时,我们应该给出滑块的高度,即 itemExtend 的值,这样滑动的时候,UI 线程不会花费大量的时间计算高度上。...写在最后 Flutter 性能优化涉及到方方面面,本文从渲染原理的角度进行切入讲解其优化手段。

1.3K30

Stateful 组件的生命周期​

生命周期二:initState initState 函数组件被插入树中时被 Framework 调用( createState 之后),此函数只会被调用一次,子类通常会重写此方法,在其中进行初始化操作...super.didChangeDependencies(); context.dependOnInheritedWidgetOfExactType(); } 上面的用法作为初学者使用的比较少,但下面的错误代码大部分应该都写过...调用 deactivate 之后,然后将 State 对象重新插入树的另一个位置。 此方法可以每一帧中调用,此方法中应该只包含构建组件的代码,不应该包含其他额外的功能,尤其是耗时任务。...mounted mounted 是 State 对象中的一个属性,此属性表示当前组件是否树中,创建 State 之后,调用 initState 之前,Framework 会将 State 和 BuildContext...createState 函数执行完毕后表示当前组件已经组件树中,属性 mounted 被 Framework 设置为 true,平时写代码时或者看其他开源代码时经常看到如下代码: if(mounted

95610

Flutter的生命周期

生命周期二:initState 「initState」 函数组件被插入树中时被 Framework 调用( 「createState」 之后),此函数只会被调用一次,子类通常会重写此方法,在其中进行初始化操作...调用 「deactivate」 之后,然后将 「State」 对象重新插入树的另一个位置。 此方法可以每一帧中调用,此方法中应该只包含构建组件的代码,不应该包含其他额外的功能,尤其是耗时任务。...mounted 「mounted」 是 State 对象中的一个属性,此属性表示当前组件是否树中,创建 「State」 之后,调用 「initState」 之前,Framework 会将 「State...「createState」 函数执行完毕后表示当前组件已经组件树中,属性 「mounted」 被 「Framework」 设置为 「true」,平时写代码时或者看其他开源代码时经常看到如下代码: if...有人下场景,App正在播放视频,此时回到手机桌面或者切换到其他App,那么此时视频应该暂停播放,Flutter 中使用 「AppLifecycleState」 实现: class AppLifecycle

1.5K30

Flutter State生命周期

build 构建 会在以下场景调用: initState()之后; didUpdateWidget()之后; setState()之后。 didChangeDependencies()之后。...didUpdateWidget 组件更新 当组件的状态改变的时候就会调用didUpdateWidget(),比如调用了setState(), widget重新构建时,Flutter framework...正如之前所述,Widget.canUpdate会在 新旧widget的key和runtimeType同时相等时会返回true,也就是说新旧widget的key和runtimeType同时相等时didUpdateWidget...deactivate 暂停 State对象从树中被移除时(dispose之前),会调用这个函数来将对象暂停。 dispose 销毁 当State对象被销毁时调用,通常在此回调中释放资源和移除监听。...print('特殊状态 state:$state'); } 这个didChangeAppLifecycleState是WidgetsBindingObserver类的一个方法, 可以用来判断当前的状态是在前台还是后台

78920

The Key of Widget in Flutter

The Key of Widget in Flutter 当我们刚开始使用Flutter,我们继承StatelessWidget和StatefulWidget时,不会关注Key。...那么,如果我们一定要用StatefulWidget来做ChildWidget时,我们应该怎么做呢?...用在哪里 简而言之,当我们一个容器下,放了多个相同的Widget对象时,我们就应该思考,这些Widget它们是否应该有个id,还是说它们本质上没有区别。...GlobalKey 官方文档 作用 允许widget应用程序中的任何位置更改其parent而不丢失其状态。应用场景:两个不同的屏幕上显示相同的widget,并保持状态相同。...结语 对于key的使用,需要根据我们业务的具体情况,根据Flutter的渲染机制,灵活掌握。其核心就是Element与Widget的绑定关系,是类型绑定,还是key+类型的绑定。

1.1K20

Flutter--Flutter中Widget、App的生命周期

所以,本文主要就是学习一下flutter开发App的时候,如何去怼App以及各个页面的生命周期进行监听和回调。...一、页面的生命周期 Flutter开发中,所有的组件和页面都继承自Widget,所以探索页面的生命周期其实就是Widget的生命周期。...调用 deactivate 之后,然后将 State 对象重新插入树的另一个位置。 此方法可以每一帧中调用,此方法中应该只包含构建组件的代码,不应该包含其他额外的功能,尤其是耗时任务。...1.3.1 mounted mounted 是 State 对象中的一个属性,此属性表示当前组件是否树中,创建 State 之后,调用 initState 之前,Framework 会将 State...createState 函数执行完毕后表示当前组件已经组件树中,属性 mounted 被 Framework 设置为 true,平时写代码时或者看其他开源代码时经常看到如下代码: if(mounted

2.6K31

如何快速提升 Flutter App 中的动画性能

观前提醒:本文假设你已经有一定的 Flutter 开发经验,对Flutter 的 Widget,RenderObject 等概念有所了解,并且知道如何开启 DevTools。...其它代码之前没什么两样,如下: class BubbleAnimationByCustomPaint extends StatefulWidget { @override _BubbleAnimationByCustomPaintState...或者代码中设置debugRepaintRainbowEnabled = true。 在手机画面上立马会看到色块,如果画面上有动画的话更明显,其会随着 paint 的次数增加而变化,像彩虹灯一样。...可以看到,整个 APP 界面包括头部的 AppBar 的颜色是跟着内部的汽泡一起变的,说明随着内部动画而发生 repaint。...结语 恭喜你,又离资深 Flutter 开发更近了一步。通过本文,你应该学会了如何让 Flutter 动画动得更有效率。关注公众号 逆锋起笔,回复 pdf,下载你需要的各种学习资料。

1.4K20

围观Github上Flutter评论最多的Issue

那我们先来看看原生Flutter中如何来做复用。这里假设我们有一个自己实现的特殊的网络请求类MyRequest,我们的app中只要是网络请求都需要使用这个类。...} } @override void dispose() { _myRequest.cancel(); super.dispose(); } } 多了个userId之后...最后,就是新方案性能上不能有不可接受的下降。不管是时间(响应)还是空间(内存)方面都要对比原生做法不能有较大的降低。 总结下来就是以下几点: 独立性,“模块”包含一个独立的状态逻辑。...具体可以参考我之前介绍Hooks的文章《Flutter Hooks 使用及原理》。 缺点嘛就是Hooks太过激进(简洁),有些方面和Flutter的理念是相抵触的。...通过围观我们能学到什么 通常我们学习新技术的时候都是去看别人写好的文档,去研读别人写好的源代码。照猫画虎的写一写自己的代码,这样下来只能说是会用了而已。

95410

Flutter实例一--底部规则导航栏制作

使用时要根据变化状态,调整State值, 能够快速初始化,VSCode中直接使用快捷方式生成代码(直接在VSCode中输入stful后回车自动生成结构),如下: class name extends...,使用StatefulWidget分为两个部分,第一个部分是继承与StatefullWidget,第二个部分是继承于State.其实State部分才是重点,主要的代码都会写在State中。...代码如下: import 'package:flutter/material.dart'; import 'bottom_navigation_widget.dart'; void main()=> runApp...此时使用flutter run 来进行查看代码了,效果已经出现,APP的页面上已经出现了一个底部导航栏,只不过现在还点击还没有什么效果。接下来开始制作切换页面。.....add(EmailScreen()) ..add(PagesScreen()) ..add(AirplayScreen()); super.initState();

1.3K30

Flutter第7天--字体图标+综合小案例+Android代码交互

,顺手Star一下吧 顺便提一下:Dart语法的相关测试test包的base里(怕你们找不到) 与Android代码交互后感觉flutter还是蛮可以的,可惜没条件玩ios,不然岂不是可以通杀...Icon(Icons.android)也许你经常用,但内置图标有限,只能测试玩玩 实际上用还是需要自定义才行,前端的时候有字体图标,Flutter应该也行 //比如我们经常怎样用: Icon(Icons.comment...Image 3.png ---- 4.根据Flutter内置的类,我写了一个自动代码生成器 虽然直接也能用,不够要记住图标的unicode码,算了,还是Flutter看齐吧 注意:为了简单使用:...运行正常 ---- 友情提示:下载之前最好把图标名字改一下,不然之后找起来费劲 如果实在不想该,可以点击这里查看名字和图标的对应情况 ?...final double y; 一个shape牵扯出这么多类,有人可能就栈溢出了,还是使用默认的吧,等一下,且听我分析 当Radius入问题栈之后,看一下也就是两个值,就出栈了,BorderRadius

2.3K30

Flutter中的html内容加载

上一篇文章Flutter 中的下拉刷新和上拉加载中,我介绍了如何在Flutter中实现下拉刷新和上拉加载的效果,今天我们继续以上文中的代码为例,来介绍如何加载HTML文档内容。...,大家还是思考全面,不要简单拷贝如下代码!...,点击对应单元格之后响应的代码如下: //点击对应的条目之后响应 onTap: () { //跳转到详情页面,并将aid传递过去 Navigator.pushNamed(context, "/...,我们首先通过列表页面传递过来的参数来网络请求页面详情数据,然后就能够得到网络返回的html文本,之后我们通过flutter_html这个第三方来解析html文本内容,解析的代码如下: Html(...Flutter中,实现WebView加载html内容的第三方组件有很多,这里我们给推荐flutter_inappbrower这一个第三方组件。

16.5K43

Flutter实现页面切换后保持原页面状态的3种方法

前言: Flutter应用中,导航栏切换页面后默认情况下会丢失原页面状态,即每次进入页面时都会重新初始化状态,如果在initState中打印日志,会发现每次进入时都会输出,显然这样增加了额外的开销,...正文之前,先看一些常见的App导航,以喜马拉雅FM为例: ?...它拥有一个固定的底部导航以及首页的顶部导航,可以看到不管是点击底部导航切换页面还是首页左右侧滑切换页面,之前的页面状态都是始终维持的,下面就具体介绍下如何在flutter中实现类似喜马拉雅的导航效果...第一步:实现固定的底部导航 通过flutter create生成的项目模板中,我们先简化一下代码,将MyHomePage提取到一个单独的home.dart文件,并在Scaffold脚手架中添加bottomNavigationBar...现在已经可以看到,不管是切换底部导航还是切换首页顶部导航,所有的页面状态都可以被保持,并且应用第一次加载时,终端只看到recommend initState的日志,第一次切换首页顶部导航至vip页面时

2.4K30
领券