大佬教程收集整理的这篇文章主要介绍了Flutter Stateful Widget重新创建状态,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
该应用程序包含一个简单的ListView,其中包含10个有状态容器(文本装饰).
当我向下滚动时,每个容器及其容器状态将按预期创建一次.当我再次向上滚动时,Flutter会为显示屏上再次出现的每个容器小部件重新创建每个状态(但不是容器小部件).
我希望颤振会在没有重新创建整个状态对象的情况下检索先前的状态.
我在这里做错了吗?
class MyHomePage extends StatefulWidget { MyHomePage({Key key}) : super(key: key) { print("MyHomePage constructor"); } @override _MyHomePageState createState() { print("createState"); return _MyHomePageState(); } } class _MyHomePageState extends State<MyHomePage> { _MyHomePageState() { print("_MyHomePageState contructor"); } void initState() { super.initState(); print("_MyHomePageState initState"); } @override Widget build(BuildContext context) { return Scaffold( body: ListView.builder( itemBuilder: (context,indeX) { return ContainerWidget(index,key: ValueKey(indeX)); },itemCount: 10,)); } } class ContainerWidget extends StatefulWidget { int index; ContainerWidget(this.index,{key}) : super(key: key) { print("ContainerWidget constructor for index $index"); } @override State<StatefulWidget> createState() { print("ContainerWidget createState for index $index"); return _ContainerState(); } } class _ContainerState extends State<ContainerWidget> { _ContainerState() { print("_ContainerState constructor"); } void initState() { super.initState(); print("_ContainerState initState for index ${widget.index}"); } @override Widget build(BuildContext context) { return Container( child: Center( child: Text("Index: ${widget.index}"),),height: 200,decoration: BoxDecoration( border: Border( bottom: Borderside(color: Colors.green),); } }
对数输出:
I/Flutter (22400): createState I/Flutter (22400): _MyHomePageState contructor I/Flutter (22400): _MyHomePageState initState I/Flutter (22400): ContainerWidget constructor for index 0 I/Flutter (22400): ContainerWidget createState for index 0 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 0 I/Flutter (22400): ContainerWidget constructor for index 1 I/Flutter (22400): ContainerWidget createState for index 1 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 1 I/Flutter (22400): ContainerWidget constructor for index 2 I/Flutter (22400): ContainerWidget createState for index 2 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 2 I/Flutter (22400): ContainerWidget constructor for index 3 I/Flutter (22400): ContainerWidget createState for index 3 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 3 I/Flutter (22400): ContainerWidget constructor for index 4 I/Flutter (22400): ContainerWidget createState for index 4 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 4 I/Flutter (22400): ContainerWidget constructor for index 5 I/Flutter (22400): ContainerWidget createState for index 5 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 5 I/Flutter (22400): ContainerWidget createState for index 1 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 1 I/Flutter (22400): ContainerWidget createState for index 0 I/Flutter (22400): _ContainerState constructor I/Flutter (22400): _ContainerState initState for index 0
以上是大佬教程为你收集整理的Flutter Stateful Widget重新创建状态全部内容,希望文章能够帮你解决Flutter Stateful Widget重新创建状态所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。