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

如何使用SliverList组件

文章目录

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

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

在这里插入图片描述

1 概念介绍

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

2 使用方法

和其它组件一样,SliverList组件提供了相关的属性来控制自己,不过它的属性只有两个,一个是常用的key属性,另外一个是delegate属性,我们重点介绍delegate
属性。该属性是SliverChildDelegate类型,不过这个类是一个抽象类,无法创建对象,它有两个实现类,详细如下:

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

3 示例代码

介绍完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.kler.cn/a/529300.html

相关文章:

  • leetcode 844 比较含退格的字符串
  • 家居EDI:Hom Furniture EDI需求分析
  • LeetCode:63. 不同路径 II
  • Java开发vscode环境搭建
  • deepseek R1 14b显存占用
  • LINUX部署微服务项目步骤
  • 数据分析系列--⑨RapidMiner训练集、测试集、验证集划分
  • 拉格朗日定理
  • C++编程语言:抽象机制:模板(Bjarne Stroustrup)
  • 【网站建设:HTTPS - 如何生成免费SSL证书,并自动更新】
  • 【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具01
  • RabbitMQ持久化队列配置修改问题
  • python-leetcode-二叉搜索树迭代器
  • 基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)
  • maven构件子模块步骤及注意事项
  • w185客户关系管理系统
  • AIGC技术中常提到的 “嵌入转换到同一个向量空间中”该如何理解
  • Golang 应用的 Docker 部署方式介绍及使用详解
  • 深入解析JMeter源码:AbstractThreadGroupGui抽象类的实现机制与设计哲学
  • MySQL 基础学习(5):数据库约束
  • Epoll编程——流程、易错、关键参数
  • 【C++ 区间位运算】3209. 子数组按位与值为 K 的数目|2050
  • 【开源免费】基于Vue和SpringBoot的流浪宠物管理系统(附论文)
  • 新能源算力战争:为什么AI大模型需要绿色数据中心?
  • 【DeepSeek】本地快速搭建DeepSeek
  • 10 Flink CDC