问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Flutter局部刷新方法

发布网友 发布时间:2022-12-06 11:02

我来回答

1个回答

热心网友 时间:2024-12-14 10:36

Flutter中Widget分为StatefulWidget和StatelessWidget,分别为动态视图和静态视图,视图的更新需要调用StatefulWidget的setState方法,这会遍历调用子Widget的build方法。当一个主页面比较复杂时,会包含多个widget,如果直接调用setState,会遍历所有子Widget的build,这是非常不必要的性能开销,有没有单独刷新指定Widget的方式呢?这个时候就要用到GlobalKey了。

一个StatefulWidget包含一个Button,一个Text,通过点击Button调用主Widget的setState方法,刷新Text,示例如下:

同样一个StatefulWidget包含一个多个Text和Button,点击Button我们只需要刷新指定的Text,通过GlobalKey的方式,实现如下:

主Widget,包含一个需要更新的TextWidget和一个不需要更新的Text

需要单独更新的Widget

传递事件的Button

这样点击Button就只会更新指定的TextWidget了,效果如下:

这只是一个简单的例子,在实际开发中为了页面刷新的高效率,模块化封装非常重要。很多情况下都只需要局部刷新,而不是重构整个视图。所以Globalkey的运用在项目中需要熟练掌握
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
韩国EMS19.3公斤的箱子去中国要多少钱 俄罗斯快递查询 青春期孩子想买贵东西怎么办 发现青春期孩子买成人用品怎么办?? ...运送石油到中国上海湾,途中经过的海峡有( )A.白令海峡B.马六甲海峡C... 中俄货物运输企业 ...湾往我国运送石油的船只需要经过的海峡是: ( ) A.直布罗陀海峡 B... 童心唱响祖国完整版歌词【26句精选】 苹果有面容和没面容有什么区别 苹果无面容影响 flutter微任务过多导致的帧率下降 Flutter:快速创建简单闪屏页 互联网创业团队 AngularJS父子controller通信方式 黄金变成绿色了是怎么回事? 检查工作开场白 我不想再微信聊天了! 我们为什么越来越不爱聊微信了 我不喜欢微信聊天 云南省非税收入统一票据查询是否中奖 多元线性回归中自变量减少预测误差变大回归平方怎么变化 更换新主板跟cpu要重装系统吗 air5怎么切换四个扬声器 ipad air5几个喇叭? 梦见我被别推下田 为什么三年级被很多老师称为是小学阶段的转折点呢? 手机屏左上角横条状叫什么屏幕 matlab判断文件或文件夹是否存在 英昌钢琴是不是音色太脆 英昌钢琴10年了还可以买吗 鹿柴古诗拼音 足阳明胃经——人体能量来源之本 驱蚊手环的液体有毒吗 驱蚊手环散发的味道有毒吗 苏州有哪些学院 四个半月宝宝过敏全身起疙瘩怎么办 子固家生态板和吉吉鸟生态板那种好? 小米手机南京哪有的修 苹果6突卡住黑屏转圈圈怎么办 我的只是普通手机,下载哪个防火墙软件合适? 如何在手机下载安卓防火墙 苹果最老的一款手机叫什么 梦见朋友从二楼掉下去 梦见有人从八楼跳下去了 孩子胆小见人不敢问好怎么办 内向人,,听话的孩子,有什么不好。。 孩子是谦虚还是自我否定?成败归因:父母培养孩子谦虚勿过度 怎么看待不张扬个人的这种为人处事的特点? 初中生被老师夸稳重? 锁阳可以泡酒吗 泡酒比例 微信朋友圈被秒赞的哲理说说句子