如何实现滑动列表功能

news/2025/2/2 17:02:49/

文章目录

  • 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.ppmy.cn/news/1568744.html

相关文章

【漫话机器学习系列】067.希腊字母(greek letters)-写法、名称、读法和常见用途

希腊字母(Greek Letters) 希腊字母在数学、科学、工程学和编程中广泛使用,常用于表示变量、常量、参数、角度等。以下是希腊字母的完整列表及其常见用途。 大写与小写希腊字母表 大写小写名称(英文)名称(…

开源的瓷砖式图像板系统Pinry

简介 什么是 Pinry ? Pinry 是一个开源的瓷砖式图像板系统,旨在帮助用户轻松保存、标记和分享图像、视频和网页。它提供了一种便于快速浏览的格式,适合喜欢整理和分享多种媒体内容的人。 主要特点 图像抓取和在线预览:支持从网页…

python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果

【1】引言 前序学习进程中,学习了图像互相叠加的不同操作方法,包括add()函数直接叠加BGR值和使用bitwise()函数对BGR值进行按位计算叠加等,相关文章链接包括且不限于: python学opencv|读取图像(四十二)使…

AI导航工具我开源了利用node爬取了几百条数据

序言 别因今天的懒惰,让明天的您后悔。输出文章的本意并不是为了得到赞美,而是为了让自己能够学会总结思考;当然,如果有幸能够给到你一点点灵感或者思考,那么我这篇文章的意义将无限放大。 背景 随着AI的发展市面上…

Docker/K8S

文章目录 项目地址一、Docker1.1 创建一个Node服务image1.2 volume1.3 网络1.4 docker compose 二、K8S2.1 集群组成2.2 Pod1. 如何使用Pod(1) 运行一个pod(2) 运行多个pod 2.3 pod的生命周期2.4 pod中的容器1. 容器的生命周期2. 生命周期的回调3. 容器重启策略4. 自定义容器启…

使用Python Dotenv库管理环境变量

使用Python Dotenv库管理环境变量 在开发Python应用程序时,管理配置信息(如API密钥、数据库连接字符串等)是一个常见的需求。为了确保安全性和灵活性,通常不建议将这些敏感信息硬编码在代码中。这时,dotenv库就派上了…

高可用 Keepalived 服务部署流程

一、配置文件 vim /etc/keepalived/keepalived.confGLOBAL CONFIGURATION --- 全局配置部分VRRPD CONFIGURATION --- VRRP协议配置部分LVS CONFIGURATION --- LVS服务管理配置部分[rootlb01 ~]# cat /etc/keepalived/keepalived.…

十分钟快速上手 markdown

前言 本人利用寒假期间,将自己所学的markdown的知识,以及将自己常用的一些操作和注意事项记录下来,希望能够帮助大家 一、markdown是什么 Markdown 是一种轻量级标记语言,说白了就是可以让你利用最简单的语法达到最好的排版效果…