Flutter Widget 之StatefulBuilder构建方法详解

 更新时间:2022年11月23日 15:32:38   作者:程序员界的小学生  
这篇文章主要为大家介绍了Flutter Widget 之StatefulBuilder构建方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

你曾否意识到你需要拆分一个大型的构建方法,但又觉得这听起来很费劲?

试试StatefulBuilder 以最小的代价获得一个个单独的小部件的所有性能

想象一下,这样的一个小部件,有一个可以切换单一标志的便宜的子部件,然后是一个昂贵的小部件。

除非绝对必要,否则你不会想要重建它

bool isExpanded = false;
Widget build(context) {
    return Column(
        children: [
            InexpendsiveStateful(
                isExpanded: isExpanded,
                onTap: (bool newValue) => setState(() => isExpanded = val),
            ),
            ExpensiveStateless(),
        ]
    );
}

性能问题解决

为了解决性能问题,用一个StatefulBuilder来包装Stateful部分,StatefulBuilder与builder类似,除了传递给builder的那个额外的setState参数

bool isExpanded = falise;
Widger build(context) {
    return Column(
        children: [
            StatefulBuilder(
                builder: (ctx, setState) => 
                    InexpensiveStateful(
                        isExpanded: isExpanded,
                        onTap: (bool newValue) => setState(() => isExpanded = val),
                    )
            ),
            ExpensiveStateless(),
        ]
    );
}

为了善加利用这个崭新的小部件,调用其特殊的setState函数来重建你的应用程序的那一部分,当那个onTap方法被调用setState时,它就是你的StatefulBuilder的setState范围

这意味着你的ExpensiveStateless小部件仍然没有被触动

StatefulBuilder是一个很好的方法,可以从一个单独的小部件中获得所有的性能提升,而不需要做大部分的工作。

如果想了解有关# StatefulBuilder的内容,或者关于Flutter的其他功能,请访问pub.dev

以上就是Flutter Widget 之StatefulBuilder构建方法详解的详细内容,更多关于Flutter Widget StatefulBuilder的资料请关注脚本之家其它相关文章!

相关文章

  • Android仿微信发送语音消息的功能及示例代码

    Android仿微信发送语音消息的功能及示例代码

    这篇文章主要介绍了Android仿微信发送语音消息的功能及示例代码,需要的朋友参考下吧
    2017-08-08
  • Android仿抖音上下滑动布局

    Android仿抖音上下滑动布局

    这篇文章主要为大家详细介绍了Android仿抖音上下滑动布局,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Android超实用的Toast提示框优化分享

    Android超实用的Toast提示框优化分享

    Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。那么这篇文章跟大家分享下Android中Toast的优化,对大家日常开发还是很实用,下面来一起看看吧。
    2016-09-09
  • Gradle编译打包Android apk详细介绍

    Gradle编译打包Android apk详细介绍

    这篇文章主要介绍了Gradle编译打包Android apk详细介绍的相关资料,理解Gradle构建过程,解读Android Gradle插件的配置,需要的朋友可以参考下
    2016-12-12
  • Android获取系统时间的多种方法

    Android获取系统时间的多种方法

    这篇文章主要介绍了Android获取系统时间的多种方法,对时间进行格式化操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android使用OkHttp发送post请求

    Android使用OkHttp发送post请求

    这篇文章主要为大家详细介绍了Android使用OkHttp发送post请求,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Android实现图片轮播效果的两种方法

    Android实现图片轮播效果的两种方法

    android图片轮播效果非常漂亮,在程序开发中也经常用到,本文给大家分享android实现图片轮播效果的几种方法,对android实现图片轮播相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • Android自定义图片轮播Banner控件使用解析

    Android自定义图片轮播Banner控件使用解析

    这篇文章主要为大家详细介绍了Android自定义图片轮播Banner控件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android自定义popupwindow实例代码

    Android自定义popupwindow实例代码

    这篇文章主要为大家详细介绍了Android自定义popupwindow实例代码,popupwindow弹出菜单效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • android滑动解锁震动效果的开启和取消

    android滑动解锁震动效果的开启和取消

    在4.0的圆环滑动解锁中,我们点击下去的时候会有震动效果,因为这个控件设置的震动效果没有绑定设置中设置的触摸振动开关来取消振动效果,下边这个例子实现了开启和取消的方法
    2013-06-06

最新评论