十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
《思念》-汪国真 〈yearn〉-Wang Guozhen
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的城关网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
思念 Yearn
我叮咛你的 What I've baden you,
你说 不会遗忘 you said,its never gotta be sank into oblivion
你告诉我的What You've told me ,
我也 全都珍藏i also, shall always treasure them all
对于我们来说 To us
记忆是飘不落的日子 Memories are like the persistent days
——永远不会发黄 will never turn yellowing
相聚的时候 总是很短 At the time of togetherness,its always so short
期待的时候 总是很长At the time of expectation,its always so long
岁月的溪水边The Stream side of the years
捡拾起多少闪亮的诗行has picked up countless twinkling stich
如果你要想念我 Once if you expect to miss me
就望一望天上那 Do look up
闪烁的繁星 at those glittery stars heavenly!
有我寻觅你的 (coz)inside is my sight seeking for you
目——光 imaginative-------ness
译:留学语言学者---顾琼雯
在网上找了很多没有关于这方面的例子,组件之间传值,可以通过构建函数,如果我要回调这个组件的值呢,给大家介绍一下这两个值 ValueChanged VoidCallback 自己也加深记忆一下
一ValueChanged
官方解释
这个值可以回调值,例如
二 VoidCallback
这个值也可以回调但不能回调值,只能触发方法
hao((){
print("");
});
hao(VoidCallback voidCallback){
voidCallback();
}
错误方法下面会报错的
emotional flutter
感情的浮动
笑颜(えがお)残(のこ)る 帰(かえ)り道(みち)に
いつかなくした 声(こえ)探(さが)してる
归途中,残留着你的笑容
寻找着,曾几何时的声音
记忆(きおく)の暗(やみ)が刻(きざ)む时(とき)
今(いま)も终(お)わらなくて
烙印在黑暗中的记忆
那一刻始终无法没灭
空(そら)の中(なか)舞(ま)い降(お)りる
白(しろ)い羽(はね) 揺(ゆ)らして
舞动洁白的双翼
从空中飘舞而降
手(て)を伸(の)ばし 駆(か)け抜(ぬ)け
あなたの影(かげ) 追(お)いかけていく
出双手,奔向前方
追寻着你熟悉的身影
白(しろ)い雪(ゆき)が降(ふ)り积(つ)もれば
包(つつ)み隠(かく)すの 悲(かな)しみの色(いろ)
皑皑的白雪从天而降
为我掩盖悲伤的色彩
心(こころ)の奥(おく)に潜(ひそ)む爱(あい)
どうか忆(おぼ)えていて
将我心底潜藏的爱
毫无保留的献予你
空(そら)高(たか)く舞(ま)い上(あ)がる
白(しろ)い羽(はね) 広(ひろ)げて
舒展洁白的双翼
轻舞飞扬于广阔的天际
柔(やわ)らかな阳(ひ)の中(なか)
あなたの梦(ゆめ)みていたい
在柔和的阳光里
满怀着你的梦想
远(とお)く空(そら) 舞(ま)い踊(おど)る
白(しろ)い羽(はね) 缠(まと)って
身披洁白的双翼
翩翩起舞于悠远的天空
ふたつの手(て) 重(かさ)ねて
未来(みらい)を离(はな)さないでいて
我们的双手紧紧牵系
把握住未来,请不要放手
与iOS的ViewController、Android的Activity一样,Flutter中的Widget也存在生命周期,并且通过State来提现。而App则是一个特殊的Widget,除了需要处理视图显示的各个阶段,还需要应对应用从启动到退出所经历的各个状态。
State的生命周期,指的是在用户参与的情况查下,其关联的Widget所经历的从创建到显示再到更新最后到停止,直至销毁的各个过程阶段。
这些不同的阶段涉及到的特定的任务处理,正确理解State的生命周期至关重要,State的生命周期流程图图,如下所示:
从图中可以看到,State的生命周期可以分为3个阶段:创建、更新、销毁。下面将介绍每一个阶段的具体流程
State初始化时会依次执行:构造方法 - initState - didChangeDependencies - build,随后完成页面渲染
Widget的状态更新,主要由3个方法触发:setState、didChangeDependencies与didUpdateWidget。
一旦这三个方法被调用,Flutter就回销毁旧的Widget,并调用build方法重建Widget
组件销毁相对比较简单,组件被移除,或者页面销毁的时候,系统会调用deactivate和dispose这两个方法来移除或销毁组件
下面这张表格也可以帮助我们理解记忆这些调用实际
视图的生命周期,定义了视图的加载到构建的全过程,其回调机制能够确保我们可以更具视图的状态选择合适的时间做恰当的事情,而App的生命周期,则定义了App从启动到退出的全过程
在原生Android、iOS开发中,有时我们需要再对应的App生命周期事件中做相应的处理,比如App从后台进入前台,从前台退出后台,或者在UI绘制完成后做一些处理。
这样的需求,在原生开发中,可以通过重写Activity、ViewController生命周期回调方法,或者是注册应用程序的相关通知来兼容App的生命周期并做相应的处理。而在Flutter中,我们可以利用WidgetsBindingObserver类,来实现同样的需求。
下面我们看看WidgetsBindingObserver中具体有哪些回调函数:
didChangeAppLifecycleState回调函数中,有一个参数类型为AppLifecycleState的枚举类型,这个枚举类型是Flutter对App生命周期状态的封装,它的常用状态包括:
可以将App切前后台,控制台输出的App状态,可以发现:
我们可以通过下面的这张图直观的了解状态切换过程
除了需要监听App的生命周期回调做相应处理外,根据不同的需求,我们需要再组件宣讲之后做一些与显示安全相关的操作,在iOS中,可以通过GCD的方法,让操作在下一个RunLoop执行,在Android中,可以通过View.post()插入消息队列,来保证在组件渲染后进行相关操作。在Flutter中实现同样的需求会更简单:使用WidgetsBinding来实现即可
WidgetsBinding提供了单词Frame绘制回调和实时Frame绘制回调两种机制来满足不同的需求场景: