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

鸿蒙:WaterFlow瀑布流组件的使用

1、前言

在电商app开发中,我们经常会用到瀑布流组件,实现商品的个性化展示,鸿蒙瀑布流组件是WaterFlow。

2、参考文档

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-layout-development-create-waterflowhttps://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-layout-development-create-waterflow

3、核心思路

1. 在项目的rawfile目录下放入1.jpg 2.jpg 3.jpg 4.jpg

2. 在组件构建之前往数组里面添加1~4的随机数

3. 使用waterFlow组件结合ForEach渲染列表

4、核心代码

    WaterFlow() {ForEach(this.arrayNum, (item: number) => {FlowItem() {Image($rawfile(`${item}.jpg`))}.backgroundColor(Color.Gray).padding(5)})}.columnsTemplate('1fr 1fr')

5、运行效果

6、完整代码

// 生成包含0-3所有数字、且无重复的随机数组(长度固定为4)
function generateUnique0To3Arr(): number[] {const baseArr = [1, 2, 3, 4]; // 基础数组(包含0-3所有元素)// 洗牌算法:用“临时变量”替换解构赋值,实现元素交换for (let i = baseArr.length - 1; i > 0; i--) {// 1. 生成0~i之间的随机索引j(确保不重复交换已打乱的元素)const j = Math.floor(Math.random() * (i + 1));// 2. 用临时变量temp存储baseArr[i],避免交换时值被覆盖const temp = baseArr[i];baseArr[i] = baseArr[j]; // 把j位置的值赋给ibaseArr[j] = temp; // 把临时存储的i值赋给j,完成交换}return baseArr; // 返回打乱后的数组(包含0-3,无重复)
}@Entry
@Component
struct Index {@State arrayNum: Array<number> = []aboutToAppear(): void {this.arrayNum = generateUnique0To3Arr()this.arrayNum.push(...generateUnique0To3Arr())this.arrayNum.push(...generateUnique0To3Arr())this.arrayNum.push(...generateUnique0To3Arr())}build() {Column() {WaterFlow() {ForEach(this.arrayNum, (item: number) => {FlowItem() {Image($rawfile(`${item}.jpg`))}.backgroundColor(Color.Gray).padding(5)})}.columnsTemplate('1fr 1fr')}}
}

觉得有帮助可以点赞或收藏

http://www.dtcms.com/a/461280.html

相关文章:

  • Git高级操作:提升开发效率的实用别名设置
  • C++分布式语音识别服务实践——架构设计与关键技术
  • Hadoop YARN 与 MapReduce 基础关系及 YARN 核心架构细化解析
  • 网站续费模版秦皇岛网站建设价格
  • 16.链路聚合手动配置(2025年10月9日)
  • 做网站的技术门槛高吗做营销型网站费用
  • 做网站的网页图片素材怎么找海南省人才在线
  • opencv中旋转角度使用atan函数或atan2函数计算角度
  • 做详情页到那个网站找模特素材《高性能网站建设指南
  • 【蓝牙协议栈】蓝牙核心规范6.0新特性学习
  • vue中的 watchEffect、watchAsyncEffect、watchPostEffect的区别
  • Python从入门到实战:全面学习指南2
  • 今天我们开始学习python3编程之python基础
  • jenkins更新了gitlab后出现报错
  • 【OS笔记06】:进程和线程4-进程调度的核心算法
  • 自助建网站工具网站建设与推广
  • 操作系统第二章(下)
  • UNIX下C语言编程与实践49-UNIX 信号量创建与控制:semget 与 semctl 函数的使用
  • 探索Playwright MCP和Claude的协作:智能网页操作新境界
  • Java-144 深入浅出 MongoDB BSON详解:MongoDB核心存储格式与JSON的区别与应用场景
  • 网站的流量是怎么算的双牌网站建设
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 神经网络基础原理
  • Flink State V2 实战从同步到异步的跃迁
  • xml网站地图在线生成工具杭州城西做网站的公司
  • 怎样搭建个人网站wordpress farmer
  • 10.9 lpf|求凸包|正反扫描
  • HashMap 与 Hashtable 深度对比分析
  • 网站开始开发阶段的主要流程辽宁建设工程信息网工程业绩怎么上传
  • 缓存雪崩、击穿、穿透是什么与解决方案
  • 桌面图标又乱了?这个小神器,让你的桌面布局“一键复位”