首页 > 其他分享 >flutter widget super(key: key)的作用

flutter widget super(key: key)的作用

时间:2024-08-28 11:27:29浏览次数:6  
标签:widget Text ObjectKey key child super Card

在浏览flutter的代码的时候,会发现widget类总是有一个可选的key参数。那么为什么需要有这个参数呢?带着疑惑去研究了下,总算找到了答案。

key参数简单的理解,就是widget的id,用来标识某个widget。在我们根据自己的需求,需要去定位某个widget的时候,就可以使用自定义的key。

创建ObjectKey:

AnimatedList(
children: [
Card(key: ObjectKey("foo"), child: Text("foo")),
Card(key: ObjectKey("bar"), child: Text("bar")),
Card(key: ObjectKey("42"), child: Text("42")),
]
)
如果我们需要找到bar项,并删除,就需要根据ObjectKey删除bar项:

AnimatedList(
children: [
Card(key: ObjectKey("foo"), child: Text("foo")),
Card(key: ObjectKey("42"), child: Text("42")),
]
)
默认情况下,如果没有定义key,flutter默认并不会自动创建key,而是使用widget的类型和index来调用。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/genispan/article/details/123357286

标签:widget,Text,ObjectKey,key,child,super,Card
From: https://www.cnblogs.com/xiongwei/p/18384277

相关文章

  • JS单例模式; super return 改变this
    简单的单例首先js中的函数是一种特殊的对象,这使得他可以存储属性functionaaa(params){}//undefinedaaa.lalala=123//123js中的类是通过原型链继承的,因此类就是函数的集合体,可以通过babel编译看看。因此可以写出简单的单例模式classSingleton{constructor(da......
  • redis中大key问题的解决思路
    redis中如果某一个key-value值过大,在访问量比较高的时候就可能会造成网络带宽不足,例如一个value值存储大小为5MB,同时有5000个并发访问,网络带宽需要209.7Gbps,这必然会造成网络阻塞。其次redis中是单线程结构如果一个key-value值占用内存过大,传输时占用此线程时间过长,会影响其他数......
  • A Brief Introduction to Weakly Supervised Learning 论文总结
    目录论文详情摘要前言IncompleteSupervision(不完全监督)ActiveLearning(主动学习)Semi-SupervisedLearning(半监督学习)ClusterAssumption(集群假设)ManifoldAssumption(流形假设)InexactSupervision(不精确监督)InaccurateSupervision(不准确监督)总结论文详情论文标......
  • yum install epel-release, except KeyboardInterrupt, e:, SyntaxError: invalid syn
     yuminstallepel-release File"/usr/bin/yum",line30   exceptKeyboardInterrupt,e:                           ^SyntaxError:invalidsyntax问题原因:由于yum包管理是使用python2写的,由于python3与python2不兼容导致出......
  • 使用 Tampermonkey5.1.1_0加自定义编写的js脚本实现自动填充表单
    最近有碰到要使用单点登录的需求,最开始是按照固定流程使用OAuth2.0或者jwt等技术通过父子系统交互的方式实现单点登录。缺点:代码繁琐,而且需要子系统配合提供单点登录接口,并且跳转时子系统需要携带其token等参数优点:安全,通过系统交互的方式鉴权访问接口。由于要集成的子系统很多,而......
  • C# yield keyword relieve congest and consume at the same time with produce
    usingSystem.Threading;namespaceConsoleApp57{internalclassProgram{staticvoidMain(string[]args){PrintNumers();Console.WriteLine("Hello,World!");}staticvoidPrintN......
  • Lab 2: Key/Value Server
    6.5840Lab2:Key/ValueServer1.Introduction本次Lab将构建一个单机的键值服务器,该服务器保证即使存在网络故障,每个操作也都只执行一次,并且这些操作线性化执行。后续Lab中,将复制这样的服务器来处理服务器崩溃的情况。键值服务器支持三种RPC(远程过程调用)操作:Put(key,value......
  • SwiftData 如何在 Widgets 和 App 的界面之间同步数据变化?
    概述从iOS17(watchOS11)开始,苹果推出了可交互小组件(InteractiveWidgets),使用它我们终于能在Widgets中添加按钮或Toggle来直接驱动数据的变化了。但是被Widgets修改的数据如何及时的同步到对应App的界面中呢?在本篇博文中,您将学到如下内容:概述1.打造Widg......
  • module verification failed: signature and/or required key missing - tainting ker
    不同的机器编译同一个版本的内核源码生成的签名密钥(`signing_key.pem`)是不相同的。以下是原因和详细解释:签名密钥(`signing_key.pem`)的生成过程当你在编译内核时,默认情况下,内核编译过程会生成一个新的签名密钥对(包括`signing_key.pem`和`signing_key.x509`)。这个过程......
  • 论文解读Multi-Prompt Alignment for Multi-Source Unsupervised Domain Adaptation
    Multi-PromptAlignmentforMulti-SourceUnsupervisedDomainAdaptationNeurlIPS2023摘要大多数现有的无监督域适应(UDA)方法依赖于共享网络来提取领域不变特征。无论如何,当面对多个源域时,优化这样的网络涉及更新整个网络的参数,这样既昂贵又有挑战性,特别是与最小最大......