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

如何实现滑动网格的功能

文章目录

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

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

在这里插入图片描述

1 概念介绍

我们在本章回中介绍的SliverGrid组件是一种网格类组件,主要用来创建网格类布局,它和GridView组件类似,它们的不同之处在于SliverGrid组件可以被当作一
个整体来滑动。我们将在本章回中详细介绍SliverGrid组件的使用方法。

2 使用方法

和其它组件一样,SliverGrid组件提供了相关的属性来控制自己,不过它的属性只有三个:- key属性;- delegate属性; - gridDelegate属性;
我们先看一下delegate属性。该属性是SliverChildDelegate类型,不过这个类是一个抽象类,无法创建实例,它有两个实现类,详细如下:

  • SliverChildBuilderDelegatet - SliverChildListDelegate.
    关于SliverChildDelegate类和它的两个子类是不是很熟悉,没错!我们在上一章回中刚刚介绍过它们,因此这里就不再介绍了。我们重点介绍gridDelegate属性,
    该属性是SliverGridDelegate类型,不过这个类是一个抽象类,无法创建实例,它有两个实现类,详细如下:
  1. SliverGridDelegateWithFixedCrossAxisCount, 该类提供了五个属性,详细的名称和功能如下:
  • crossAxisCount属性:用来控制主轴上显示内容的数量;
  • mainAxisSpacing属性:用来控制主轴上显示内容的空间,相当于行距
  • crossAxisSpacing属性:用来控制交叉轴上显示内容的空间,相当于列距
  • childAspectRatio属性:用来控制显示的宽高比;
  • mainAxisExtent属性:用来控制主轴外显示内容的扩展空间,
  1. SliverGridDelegateWithMaxCrossAxisExtent,该类提供了五个属性,详细的名称和功能如下:
  • maxCrossAxisExtent属性用来控制主轴上最大可以显示的内容数量;
  • mainAxisSpacing属性:用来控制主轴上显示内容的空间,相当于行距;
  • crossAxisSpacing属性:用来控制交叉轴上显示内容的空间,相当于列距
  • childAspectRatio属性:用来控制显示的宽高比;
  • mainAxisExtent属性:用来控制主轴外显示内容的扩展空间;
    这两个类的用法比较类似,它们的区别在于:第一个类使用了固定的数量来限制主轴上显示内容的数量,第二个类则是依据显示内容的大小和空间自动调整主轴上显示内容
    的数量,如果数量超过最大值就换行显示。介绍完使用方法后,我们将在在后面的小节中给出示例代码来演示具体的使用方法。

3 示例代码

///不使用工厂方法,直接使用SliverGrid的构造方法
SliverGrid(///Grid中显示的内容,可以使用BuilderDelete直接创建显示内容,或者使用已经有的listdelegate: SliverChildBuilderDelegate((context,index){return const Icon(Icons.face_3_outlined); },childCount: 20,),///配置Grid的相关属性,gridDelegate:const SliverGridDelegateWithFixedCrossAxisCount(///主轴上显示内容的空间设置,相当于行距mainAxisExtent: 20,mainAxisSpacing: 20,///交叉轴显示内容的数量,这里相当于4列crossAxisCount: 4,///交叉轴上显示内容的空间设置crossAxisSpacing: 20,///显示内容的宽高比childAspectRatio: 1.2,),
),
///不使用工厂方法,直接使用SliverGrid的构造方法,和上一个类似,只是创建显示内容的方法不同
SliverGrid(///Grid中显示的内容,可以使用BuilderDelete直接创建显示内容,或者使用已经有的listdelegate: SliverChildListDelegate(List.generate(20,(index) => const Icon(Icons.camera,color: Colors.blue,),),),///配置Grid的相关属性,同上。不同之处在于交叉轴显示内容的数量不固定,而是与空间有关gridDelegate:const SliverGridDelegateWithMaxCrossAxisExtent(maxCrossAxisExtent: 40,mainAxisExtent: 40,mainAxisSpacing: 20,crossAxisSpacing: 5,childAspectRatio: 1.6,),
),

上面的示例代码中演示了两种delegate属性和两种gridDelegate属性的赋值方法,两种delegate属性创建的都是Icon组件。不过gridDelegate属性的配置不同,
在主轴上显示的icon数量也不同。依据目前的知识我们还不能演示程序的运行结果,因为还需要其它组件配合才可以运行,大家不用担心,目前只需要熟练掌握如何创建
SliverGrid组件就可以了,我们在后面章回中会使用本章回创建的组件给大家演示程序运行效果。
看官们,与"SliverGrid组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

相关文章:

如何实现滑动网格的功能

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverList组件相关的内容,本章回中将介绍SliverGrid组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverGrid组件是一种网格类组件,主要用来…...

使用C# 如何获取本机连接的WIFI名称[C# ---1]

前言 楼主最近在写一个WLAN上位机,遇到了使用C#查询SSID 的问题。CSDN上很多文章都比较老了,而且代码过于复杂。楼主自己想了一个使用CMD来获得SSID的方法 C#本身是没有获得WINDOWS网路信息的能力,必须要用系统API,WMI什么的&…...

【Docker】快速部署 Nacos 注册中心

【Docker】快速部署 Nacos 注册中心 引言 Nacos 注册中心是一个用于服务发现和配置管理的开源项目。提供了动态服务发现、服务健康检查、动态配置管理和服务管理等功能,帮助开发者更轻松地构建微服务架构。 仓库地址 https://github.com/alibaba/nacos 步骤 拉取…...

OpenCV:闭运算

目录 1. 简述 2. 用膨胀和腐蚀实现闭运算 2.1 代码示例 2.2 运行结果 3. 闭运算接口 3.1 参数详解 3.2 代码示例 3.3 运行结果 4. 闭运算的应用场景 5. 注意事项 相关阅读 OpenCV:图像的腐蚀与膨胀-CSDN博客 OpenCV:开运算-CSDN博客 1. 简述…...

Python | Pytorch | Tensor知识点总结

如是我闻: Tensor 是我们接触Pytorch了解到的第一个概念,这里是一个关于 PyTorch Tensor 主题的知识点总结,涵盖了 Tensor 的基本概念、创建方式、运算操作、梯度计算和 GPU 加速等内容。 1. Tensor 基本概念 Tensor 是 PyTorch 的核心数据结…...

aws(学习笔记第二十六课) 使用AWS Elastic Beanstalk

aws(学习笔记第二十六课) 使用aws Elastic Beanstalk 学习内容: AWS Elastic Beanstalk整体架构AWS Elastic Beanstalk的hands onAWS Elastic Beanstalk部署node.js程序包练习使用AWS Elastic Beanstalk的ebcli 1. AWS Elastic Beanstalk整体架构 官方的guide AWS…...

《OpenCV》——图像透视转换

图像透视转换简介 在 OpenCV 里,图像透视转换属于重要的几何变换,也被叫做投影变换。下面从原理、实现步骤、相关函数和应用场景几个方面为你详细介绍。 原理 实现步骤 选取对应点:要在源图像和目标图像上分别找出至少四个对应的点。这些对…...

9 点结构模块(point.rs)

一、point.rs源码 use super::UnknownUnit; use crate::approxeq::ApproxEq; use crate::approxord::{max, min}; use crate::length::Length; use crate::num::*; use crate::scale::Scale; use crate::size::{Size2D, Size3D}; use crate::vector::{vec2, vec3, Vector2D, V…...

Java线程认识和Object的一些方法ObjectMonitor

专栏系列文章地址:https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标: 要对Java线程有整体了解,深入认识到里面的一些方法和Object对象方法的区别。认识到Java对象的ObjectMonitor,这有助于后面的Synchron…...

【高等数学】贝塞尔函数

贝塞尔函数(Bessel functions)是数学中一类重要的特殊函数,通常用于解决涉及圆对称或球对称的微分方程。它们在物理学、工程学、天文学等多个领域都有广泛的应用,例如在波动方程、热传导方程、电磁波传播等问题中。 贝塞尔函数的…...

99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)

目录 0. 承前1. 核心知识点拆解2. 中药搭配比喻方案分析2.1 比喻的合理性 3. 通俗易懂的解释3.1 以中药房为例3.2 配方原理 4. 实际应用举例4.1 基础配方示例4.2 效果说明 5. 注意事项5.1 个性化配置5.2 定期调整 6. 总结7. 代码实现 0. 承前 本文主旨: 本文通过中…...

实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作

要实现使用K210单片机进行猫脸检测,并在检测到猫脸覆盖屏幕50%以上时执行特定操作,以及通过WiFi上传图片到微信小程序,并在微信小程序中上传图片到开发板进行训练,可以按照以下步骤进行: 1. 硬件连接 确保K210开发板…...

小程序设计和开发:如何研究同类型小程序的优点和不足。

一、确定研究目标和范围 明确研究目的 在开始研究同类型小程序之前,首先需要明确研究的目的。是为了改进自己的小程序设计和开发,还是为了了解市场趋势和用户需求?不同的研究目的会影响研究的方法和重点。例如,如果研究目的是为了…...

tiktok 国际版抖抖♬♬ X-Bogus参数算法逆向分析

加密请求参数得到乱码,最终得到X-Bogus...

Redis 基础命令

1. redis 命令官网 https://redis.io/docs/latest/commands/ 2. 在 redis-cli 中使用 help 命令 # 查看 help string 基础命令 keys * # * 代表通配符set key value # 设置键值对del key # 删除键expire key 时间 # 给键设置时间 # -2 代表时间到期了, -1 代表…...

深入解析Python机器学习库Scikit-Learn的应用实例

深入解析Python机器学习库Scikit-Learn的应用实例 随着人工智能和数据科学领域的迅速发展,机器学习成为了当下最炙手可热的技术之一。而在机器学习领域,Python作为一种功能强大且易于上手的编程语言,拥有庞大的生态系统和丰富的机器学习库。其…...

专业的定制版软件,一键操作,无限使用

今天给大家介绍一个专业的PDF转word的小软件,软件只有5.5M。非常小,而且没有文档大小的限制,可以随意使用。 PDFtu PDF转word 软件第一次使用需要安装一下。 安装好之后,我们就能在桌面找到对应的图标,打开就能直接使…...

小程序-基础加强

前言 这一节把基础加强讲完 1. 导入需要用到的小程序项目 2. 初步安装和使用vant组件库 这里还可以扫描二维码 其中步骤四没什么用 右键选择最后一个 在开始之前,我们的项目根目录得有package.json 没有的话,我们就初始化一个 但是我们没有npm这个…...

pytorch实现基于Word2Vec的词嵌入

PyTorch 实现 Word2Vec(Skip-gram 模型) 的完整代码,使用 中文语料 进行训练,包括数据预处理、模型定义、训练和测试。 1. 主要特点 支持中文数据,基于 jieba 进行分词 使用 Skip-gram 进行训练,适用于小数…...

流媒体娱乐服务平台在AWS上使用Presto作为大数据的交互式查询引擎的具体流程和代码

一家流媒体娱乐服务平台拥有庞大的用户群体和海量的数据。为了高效处理和分析这些数据,它选择了Presto作为其在AWS EMR上的大数据查询引擎。在AWS EMR上使用Presto取得了显著的成果和收获。这些成果不仅提升了数据查询效率,降低了运维成本,还…...

AutoGen Studio效果展示:看Qwen3-4B如何协作完成网页设计

AutoGen Studio效果展示:看Qwen3-4B如何协作完成网页设计 1. AutoGen Studio简介 AutoGen Studio是一个基于微软AutoGen框架开发的低代码界面工具,它让构建和组合AI代理变得简单直观。通过这个平台,你可以快速创建多个AI代理,为…...

保姆级教程:NotaGen一键部署,小白也能生成贝多芬风格交响乐

保姆级教程:NotaGen一键部署,小白也能生成贝多芬风格交响乐 1. 引言:AI音乐创作新体验 你是否曾经梦想过创作一首属于自己的交响乐?现在,NotaGen让这个梦想变得触手可及。这个基于大语言模型(LLM)的音乐生成工具&…...

私域数据安全与合规——企微引流必须注意的5个技术红线

做公域引流到企微,数据安全和合规是技术团队必须重视的问题。一旦踩红线,轻则功能受限,重则企微封禁甚至法律风险。今天梳理5个技术红线及应对方案。红线1:用户隐私数据存储企微API返回的用户信息包含ExternalUserID(外…...

无人机开发者必看:如何基于QGC源码定制你的专属地面站?从环境搭建到第一个插件开发

无人机开发者必看:如何基于QGC源码定制你的专属地面站?从环境搭建到第一个插件开发 在无人机技术迅猛发展的今天,开源地面站软件QGroundControl(QGC)已成为行业标准工具之一。但对于追求个性化功能或特定应用场景的开发…...

springboot+vue基于web的在线投稿系统的设计与开发

目录同行可拿货,招校园代理 ,本人源头供货商功能模块分析审稿流程模块系统管理模块技术实现要点项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块分析 用户管理模块 注册与登录…...

工艺智能如何让汽车涂装质量更稳、成本更低?

一辆汽车的车身涂层究竟需要经历怎样的极限挑战?从出厂时如镜面般的光泽,到在十年风雨中抵御紫外线、酸雨和砂石的侵蚀,涂装工艺正是赋予汽车这幅铠甲的关键。然而,在过去,这道工序高度依赖老师傅的经验,面…...

嵌入式Linux接入阿里飞燕物联网平台实战指南

1. 嵌入式Linux设备接入飞燕物联网平台全流程解析作为一名在嵌入式领域摸爬滚打多年的工程师,最近刚完成了一个将智能家居设备从旧平台迁移到阿里飞燕物联网平台的项目。这个过程中踩了不少坑,也积累了一些实战经验,今天就来详细分享一下基于…...

从Prompt到Agent:收藏这份LLM应用落地演进指南,小白程序员必备!

本文介绍了LLM应用落地的演进过程,从最初的Prompt工程阶段,到Chain编排阶段,再到最新的Agent阶段。文章详细阐述了每个阶段的原理、优缺点及应用实例,并提供了基于Golang的Agent实现示例。通过学习本文,读者可以了解LL…...

别再只会用Burpsuite爆破DVWA了!手把手教你用Python脚本+自定义字典搞定暴力破解

从零构建Python暴力破解工具:DVWA实战进阶指南 在渗透测试领域,暴力破解(Brute Force)始终是基础却有效的攻击手段。虽然Burpsuite这类工具提供了便捷的图形化操作界面,但真正理解其底层原理并能够自主开发定制化破解工具,才是安全…...

GeoServer高效发布SHP文件全攻略:从单文件到批量处理的进阶技巧

GeoServer高效发布SHP文件全攻略:从单文件到批量处理的进阶技巧 在GIS数据发布领域,Shapefile(SHP)作为行业标准格式已有近30年历史,而GeoServer作为开源地图服务器的中流砥柱,二者的结合构成了空间数据服务…...