当前位置: 首页 > news >正文

第一百五十七回 SliverList组件

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介绍过的ListView组件,它们的不同之处在于SliverList可以被当作一个整体来滑动。我们将在本章回中详细介绍SliverList的使用方法。

使用方法

和其它组件一样,SliverList组件提供了相关的属性来控制自己,不过它的属性只有两个,一个是常用的key属性,另外一个是delegate属性。

我们重点介绍delegate属性。该属性是SliverChildDelegate类型,不过这个类是一个抽象类,无法创建对象,它有两个实现类,详细如下:

  • SliverChildBuilderDelegatet
    该类两个常用属性builder和childCount。builder属性用来创建列表中的具体内容,它是一个方法类型,通过方法方法返回一个组件,方法的原型为
    Widget? Function(BuildContext context, int index);
    其中childCount属性用来控制列表中列表项的具体数量,这个值可空,不过一定要给它赋值,否则无法生成列表,也无法显示页面,但是不会有编译和运行错误,按照源代码中的注释来看是有内存泄漏。我觉得这个值设置为可空不合理,大家也可以发表自己的看法。
  • SliverChildListDelegate.
    该类有一个常用属性:children,它的类型为List,它和Column组件的childrnen属性完全相同,因此大家可以参考Column组件的用法来使用它。

示例代码

介绍完SliverList的使用方法后,我们通过具体的示例代码来演示。

///创建delegate对象,使用builder方法。SliverList(delegate: SliverChildBuilderDelegate((context,index){return Container(height: 60,alignment: Alignment.center,child: Text('This is ${index+1} item'),);},///list中包含内容的数量childCount:5,),),///与上面的SliverList类似,只是不有创建delegate对象,而是直接使用现成的list对象SliverList(delegate: SliverChildListDelegate(List.generate(5, (index) => const Icon(Icons.add),),) ,),

上面的示例代码中演示了两种给delegate属性赋值的方法,第一种创建的是Text组件,第二种使用了已经有List,只不过List中的内容是Icon组件。

依据目前的知识我们还不能演示程序的运行结果,因为还需要其它组件配合才可以运行,大家不用担心,目前只需要熟练掌握如何创建SliverList组件就可以了,我们在后面章回中会使用本章回创建的组件给大家演示程序运行效果。

看官们,与"SliverList组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

http://www.lryc.cn/news/177977.html

相关文章:

  • 数据结构与算法——17.二叉搜索树
  • rust所有权
  • Win10电脑任务栏没有蓝牙图标的简单解决方法
  • 判断编译器类型、编译器版本、操作系统。
  • 百度实习一面(知识图谱部门)
  • Oracle 数据库查询优化
  • 时序预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元时间序列预测
  • Java技术接单
  • 多家企业发布基于大模型的AI产品,大模型应用落地哪家强?
  • 如何在小程序中获取用户昵称、电话号,头像
  • 26606-2011 工业用氰乙酸甲酯 阅读笔记
  • 微软开源 windows-drivers-rs, 用 Rust 开发 Windows 驱动程序
  • Java中判断字符串是否为合法数字
  • [LeetCode] Hard-2251. 花期内花的数目 - 二分查找/有序数组
  • VUE3父子组件传值defineProps() 和 defineEmits()
  • OmniPlan Pro 4 for Mac:引领项目管理的创新与高效
  • 封装JDBC,实现简单ORM框架
  • 监控与运维,主流it运维监控工具
  • 基于Matlab实现全局优化算法
  • Kafka 笔记 (Non-Root/Container)
  • 【Pytest】跳过执行之@pytest.mark.skip()详解
  • Android Framework 常见解决方案(22)防应用被LowMemoryKillerDaemon(LMKD)杀掉
  • Vue - 组件递归
  • 微信小程序案例2-1:学生信息
  • 小程序如何设置余额充值
  • vue项目打包成H5apk中使用语音播放
  • windows:批处理bat实例
  • websocket php教程
  • 【操作系统】调度算法的评价指标和三种调度算法
  • CSS详细基础(三)复合选择器