一款颜值颇高的虚拟列表!差点就被埋没了,终于还是被我挖出来了

news2025/4/4 3:47:50

大家好,我是晓衡!

今天,推荐一款颇有颜值的虚拟列表组件,不然真的被埋没就可惜了!

我们先来看下效果:

02e6ca4fd17889a18e06375158b78c4e.gif

0846919b177341b390c0abada13438ea.gif

14b0fb4c341e4ca8d34e3a1e482fa6e4.gif
9c1727463a7a32af1ac52a68ff3da041.gif

感觉怎么样?还不错吧!

为什么说这个资源差点被埋没呢?因为个朋友找到晓衡询问,有没优化过的 ScrollView 能支持 grid 的?

很多人都知道,引擎自带的 ScrollView 功能有限,特别是新手,要将它玩转还真的不太容易。可能用跑是跑起来了,但那体验却是各种糟心,很容易被老板、用户骂娘。

这位朋友问对人了,因为上周我才在 Cocos Store 上发现上面这个虚拟列表(XY),体验了一下效果很是 nice!

我立即在Store上一搜过起来,居然没找出来。

我连续使用了ScrollViewViewScroll 这三个搜索词都不行。

可我当时一下子记不得它叫什么名字了,只好打开资源列表,一页一页地翻。

我硬是找了五六分钟才找到,还好我记得它的图标,有点带治愈卡通风格,很容易识别。d38c1d3b280e1b42364196128d42d938.png

不过,这里需要提醒大家,一定要善用 Cocos Store 后台商品编辑中的关键字功能,看下面这张图:5ea5f2e333f61d559ddee70a5d3b1da2.png

其实作者还是有心的,写有这么多关键词,可唯独少了ScrollView。用户也可以根据应用场景,多尝试几个关键词。

下面,我们再来看看这款 ScrollView 虚拟列表到底有些什么不同?

功能特点

首先要赞一下虚拟列表(XY)支持2.x\3.x引擎,以下是主要功能点:

  • 支持分页模式

  • 支持动态节点大小

  • 支持瀑布流布局

  • 支持同列表下多种节点类型

  • 支持分区布局模式

  • 支持列表嵌套

  • 支持旋转木马布局样式

  • 提供 3D 画廊布局思路

  • 业务清晰,高度可扩展性,注释详细,彻底搞懂工作原理

  • 自定义: 布局业务完全分离,支持自定义列表的布局排列方式

  • 自定义: 提供实时修改节点变换的方法,目前支持实时调整自定义节点的 偏移缩放旋转层级透明度

使用方法

下面是作者提供的使用方法步骤:

  • 创建一个新节点

  • 给节点挂载 YXCollectionView 组件

  • 确定列表内一共需要展示多少条内容

    this.collectionView.numberOfItems = () => this.testData.length
  • 通过 YXCollectionView 组件注册列表上需要显示的节点,可多次注册,支持同列表不同类型的节点,确保 identifier 唯一就好

    this.collectionView.register(`custom identifier`, () => instantiate(this.cellPrefab))
  • 根据实际数据,返回对应的已经注册过的节点,可通过 indexPath 区分数据

    this.collectionView.cellForItemAt = (indexPath, collectionView) => {
        return collectionView.dequeueReusableCell(`custom identifier`)
    }
  • 更新节点内容

    this.collectionView.onCellDisplay = (cell, indexPath, collectionView) => {
        let rowData = this.testData[indexPath.item]
        cell.getChildByName(`Label`).getComponent(Label).string = `${rowData.value}`
    }
  • 根据实际布局情况,配置一个合适的 YXLayout 布局对象

    let layout = new YXFlowLayout()
    layout.scrollDirection = YXFlowLayout.ScrollDirection.VERTICAL
    layout.itemSize = new math.Size(600, 200)
    layout.verticalSpacing = 20
    this.collectionView.layout = layout
  • 刷新列表

    this.collectionView.reloadData()

在线体验

说了这么多,最好还是自己去体验感受一下!

120087becacbbcc3c65b9f2949dc05d2.png

Cocos Creator 2.4.13 在线演示项目

  • https://568071718.github.io/cocos-creator-build/collection-view/2.4.13

Cocos Creator 3.8.0 在线演示项目

  • https://568071718.github.io/cocos-creator-build/collection-view/3.8.0

作者Cocos论坛技术帖

  • https://forum.cocos.org/t/topic/157984

Cocos Store下载地址:

  • https://store.cocos.com/app/detail/6249

今天的分享就到这里,晓衡的愿景是帮助1000名开发者,独立挣钱10W+。如果你有Cocos Creator的游戏、工具、教程分享,欢迎加我微信!

51502f0b96d954ae0b081b287e63879b.jpeg

3d6d76cd2a8e27c7dcc0e3cbc9d5a9be.png

472ad2030b640a24d70db3d7d92411d7.gif

ChatGPT-4o来了!使用WildCard一分钟极速体验

关不住啊!最新6个爆款小游戏源码上新!

微信小游戏分包最佳实践

微信畅玩榜我发现暗藏的几个惊天大秘!

500+免费CC0游戏模型素材点击领取!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1700223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

echarts饼图图例右侧纵向排列

如图所示,一开始,我设置了图例的right和top值,还有orient,但图例始终不能纵向排成一排,要么上面两个一行,要么最后两个一行,最后我发现同时设置一下left的值就可以了,如下所示&#…

Lookin高效调试iOS App的UI

Lookin是一款iOS开发时常用的调试软件,由腾讯微信读书团队QMUI开发。 它可以查看和修改iOS App里的UI对象的软件,展示App UI图层,类似于Xcode自带的UI Inspector工具,或另一款叫做Reveal的软件。 此外,虽然Lookin主体…

【有效的数独】python

目录 很好,超级暴力做法,能过就行,优雅个锤子啊 优雅的做法 ,绅士,噢听说叫模拟 很好,超级暴力做法,能过就行,优雅个锤子啊 我直接11个2层for循环暴力秒杀 class Solution:def is…

Oracle实践|内置函数之日期与时间函数

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 🔥 三连支持:欢迎 ❤️关注…

识别鼠标绘制的数学公式网站

https://webdemo.myscript.com/views/math/index.html x n m x n x m x^{nm}x^{n}\times x^{m} xnmxnxm 使用"$$"进行包裹

【C语言项目实战】使用单链表实现通讯录

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 期待您的关注 ​ 目录 一、引言 二、单链表的基本概念 三、通讯录项目的需求分析 四、通讯录的数据结构 五、通讯录的接口 1.通讯录初始化 / 导入外部…

Python 机器学习 基础 之 数据表示与特征工程 【分类变量】的简单说明

Python 机器学习 基础 之 数据表示与特征工程 【分类变量】的简单说明 目录 Python 机器学习 基础 之 数据表示与特征工程 【分类变量】的简单说明 一、简单介绍 二、数据表示与特征工程 数据表示 特征工程 三、分类变量 1、One-Hot编码(虚拟变量&#xff09…

rk3568_spinlock

文章目录 前言1、spinlock是什么?2、自旋锁实验2.1源码2.2 结果图总结前言 本文记录在rk3568开发板做的自旋锁实验。通过自旋锁控制state变量来限制只有一个应用程序来打开驱动设备。 1、spinlock是什么? spinlock称为自旋锁,如果获取不到资源,就只能一直傻傻地等待资源被…

提高Java编程效率:ArrayList类的使用技巧

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

乐理学习-音及音名

1. 我觉得练习题很重要。我要得到一个反馈 所以我想没学习完书中的一节就要把练习题做下来,虽然慢点也可以。 2. 做个小计划。 今天计算了一下学完《基本乐理-李重光》如果每天3张。也要80天干完,希望能有一天可以学习7张的速度的时候。 3. 练习记录…

如何利用已有数据对模型进行微调

1.langchain整合llm做知识问答 利用LangChain的能力来结合检索和生成,形成一个知识增强的问答系统(不涉及对模型的微调),而是利用llm从文档检索到问题解答。 langchain整合llm做知识检索 2.微调llm模型 1、首先是我们的数据集&…

从0开始学统计-秩和检验

1.什么是秩和检验? 秩和检验,也称为Wilcoxon 秩和检验,是一种非参数统计检验方法,用于比较两个独立样本的中位数是否有显著差异。它不要求数据满足正态分布假设,因此适用于小样本或者数据不满足正态分布假设的情况。 …

Android 快速调试网络 复制curl 到postMan

搜索这个插件 官网地址:https://github.com/itkacher/OkHttpProfiler 集成教程也在里面集成完毕后右下角有一个入口点进去可以复制curl| 插件名称:Okhttp Profiler 真的很好用!

Ubuntu server 24 源码安装Quagga 支持动态路由协议ospf bgp

1 下载:GitHub - Quagga/quagga: Quagga Tracking repository - Master is at http://git.savannah.gnu.org/cgit/quagga.git 2 安装 #安装依赖包 sudo apt install gcc make libreadline-dev pkg-config #解压 tar zxvf quagga-1.2.4.tar.gz cd quagga-1.2.4/sudo ./co…

Linux(五)

Linux&#xff08;五&#xff09; 结构体如何定义一个结构体如何定义一个结构体变量结构体变量如何访问成员如何定义一个指向结构体的指针 动态分配空间 malloc,free在堆区分配5个存Stu的空间 #include <stdio.h> //编写一子函数,对pstr中的值进行输出 /*void output(int…

【开源】租房管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、系统介绍 租客屋主模块 房源信息模块 租客评价模块 房源订单模块 留言板模块 二、系统截图 三、核心代码 一、系统介绍 基于Vue.js和SpringBoot的租房管理系统&#xff0c;分为管理后台和用户网页端&#xff0c;可以给管理员、租客和屋主角色使用&#xff0c…

Layui设置table表格中时间的显示格式

1、问题概述? 【数据库中的时间格式】 【Layui中table表格默认的显示格式】 默认的格式中会显示时间的毫秒单位,但是这个毫秒有时候是不需要的。 总结:这个时候我们就需要定义table表格中的时间显示格式。 2、解决办法? 【解决后时间的显示格式】 【解决办法1:通过字符…

AI图书推荐:ChatGPT解码—人工智能增强生活指南

《ChatGPT解码—人工智能增强生活指南》&#xff08;ChatGPT Decoded. A Beginners Guide to AI-Enhanced Living &#xff09;是一本由 大卫维恩斯&#xff08;David Wiens &#xff09;所著的书籍&#xff0c;旨在帮助读者了解并有效利用GPT-4语言模型这一强大工具来提升日常…

开发依赖与运行依赖

1. 概念 开发依赖&#xff1a;devDependencies 运行依赖&#xff1a;dependencies 2. 理解 &#xff08;1&#xff09;devDependencies 在线上状态不需要使用的依赖&#xff0c;就是开发依赖。为什么 npm 要把它单独分拆出来呢&#xff1f;最终目的是为了减少 node_modul…

ESP32-C6接入巴法云,Arduino方式

ESP32-C6接入巴法云&#xff0c;Arduino方式 第一、ESP32-C6开发环境搭建第一步&#xff1a;安装arduino IDE 软件第二步&#xff1a;安装esp32库第三&#xff1a;arduino 软件设置 第二&#xff1a;简单AP配网程序第一步&#xff1a;程序下载第二步&#xff1a;程序使用第三步…