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

鸿蒙(HarmonyOS)应用开发——容器组件(List组件)

前言

前面一篇文章中,已经说了基础组件。那么接下来就是容器组件中的List组件

根据功能分类
基础组件
容器组件
媒体组件
绘制组件
画布组件
Column
Row
List
Tabs
Grid
Swiper

概述

List是很常用的滚动类容器组件,包含有一系列相同宽度的列表项,List组件和子组件ListItem一起使用,List列表中的每一个列表项对应一个ListItem组件。

语法

List(value?: {space?:number|string,initialIndex?:number,scroller?:Scroller})
参数说明
space设置列表间距
initalIndex设置当前list初次加载时起始位置显示的item
scroller设置控制List组件的滚动

属性

设置List排列方向

  • 语法
    listDirection
  List().listDirection(Axis.Vertical)
  • 说明
    设置List 组件排列方向,默认时按照 垂直方向排列

  • 参数

参数说明
Vertical子组件ListItem在List容器组件中呈纵向排列
Horizontal子组件ListItem在List容器组件中呈横向排列。

设置列表分割线

  • 语法
    divider
  List().divider(value: {
        strokeWidth: Length;
        color?: ResourceColor;
        startMargin?: Length;
        endMargin?: Length;
    }
  • 说明
    List组件子组件ListItem之间默认是没有分割线的,部分场景子组件ListItem间需要设置分割线

  • 参数

参数说明
strokeWidth分割线的线宽
color分割线的颜色。
startMargin分割线距离列表侧边起始端的距离。
endMargin分割线距离列表侧边结束端的距离。

List列表滚动事件监听

List组件提供了一系列事件方法用来监听列表的滚动,您可以根据需要,监听这些事件来做一些操作:

  • onScroll:列表滑动时触发,返回值scrollOffset为滑动偏移量,scrollState为当前滑动状态。
  • onScrollIndex:列表滑动时触发,返回值分别为滑动起始位置索引值与滑动结束位置索引值。
  • onReachStart:列表到达起始位置时触发。
  • onReachEnd:列表到底末尾位置时触发。
  • onScrollStop:列表滑动停止时触发。
List({ space: 10 }) {
  ForEach(this.arr, (item) => {
    ListItem() {
      Text(`${item}`)
        ...
    }
  }, item => item)
}
.onScrollIndex((firstIndex: number, lastIndex: number) => {
  console.info('first' + firstIndex)
  console.info('last' + lastIndex)
})
.onScroll((scrollOffset: number, scrollState: ScrollState) => {
  console.info('scrollOffset' + scrollOffset)
  console.info('scrollState' + scrollState)
})
.onReachStart(() => {
  console.info('onReachStart')
})
.onReachEnd(() => {
  console.info('onReachEnd')
})
.onScrollStop(() => {
  console.info('onScrollStop')
})

http://www.kler.cn/a/153825.html

相关文章:

  • Ubuntu22.04安装CH343驱动并创建udev规则
  • 【C#】C#编程入门指南:构建你的.NET开发基础
  • 前后端学习
  • 【WPF】Prism学习(八)
  • Springboot3.3.5 启动流程之 tomcat启动流程介绍
  • Misc_01转二维码(不是二进制)
  • python 加马赛克
  • clickhouse -- clickhouse解析复杂JSON数组
  • 【开源】基于JAVA的超市账单管理系统
  • Java核心知识点整理大全26-笔记
  • 解决ubuntu编译aosp报错问题:error while loading shared libraries: libncurses.so.5
  • Oracle(2-10) User-Managed Backups
  • Opencv拖动条控制均值滤波卷积核大小,拖动条控制是否保存(涉及知识点:cv2.createTrackbar和cv2.getTrackbarPos的使用)
  • 【性能测试】JMeter:集合点,同步定时器的应用实例!
  • 【前端】大文件切片上传性能优化 使用 web worker 多线程
  • 2023年12月2日历史上的今天大事件早读
  • Boot工程快速启动【Linux】
  • el-select实现可复制一段“关键词“(多个)实现搜索 以及 回车选中搜索项
  • 使用dirmap命令行时报错,提示缺少gevent模块
  • LinkedList详解
  • 自己动手实现一个深度学习算法——七、卷积神经网络
  • string的模拟
  • 服务号可以升级订阅号吗
  • VR 实现 Splash Screen 效果
  • 通付盾Web3专题 | SharkTeam:起底朝鲜APT组织Lazarus Group,攻击手法及洗钱模式
  • MYSQL 连接的使用