前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >07. 快速上手!HarmonyOS4.0 List_ListItem_ListItemGroup 组件详解(一)

07. 快速上手!HarmonyOS4.0 List_ListItem_ListItemGroup 组件详解(一)

作者头像
全栈若城
发布2024-04-11 08:28:35
880
发布2024-04-11 08:28:35
举报
文章被收录于专栏:若城技术专栏若城技术专栏

本章内容概要

List 容器组件

列表包含一系列相同宽度的列表项。适合连续、多行呈现同类数据,例如图片和文本。

基本使用模型

space : 子组件主轴方向的间隔。

代码语言:javascript
复制
  List({space:10}){
		//  循环遍历
            ForEach(this.ListItemArr, (item, index)=>{
               ListItem(){
                   // 有且只有一个根组件
               }
            })
        }
创建需要循环的数据

有两种方式创建数据源

class 创建

如下图所示在ets 目录下创建一个model 文件夹 用于存放我们定义的类

**dataItem.ts内容如下 **

代码语言:javascript
复制
/**
 * @Author: 若城
 * @Date: 2024/1/23
 * @ProjectName:ArkTsNote
* @Name: dataItem
 * @Description:
 */
class DataItem{
	path:string
	label:string
	id:number
	constructor(path:string, label:string, id:number) {
		this.path = path
		this.label = label
		this.id = id
	}
}

export  default  DataItem
导入模块

在项目文件中导入router 模块 以及我们定义好的DataItem

代码语言:javascript
复制
import DataItem from '../model/dataItem'
import router from '@ohos.router';
创建数据方式一
代码语言:javascript
复制
private ListItemArr: Array<DataItem> = [
	new DataItem('pages/ListPages/ListBasics', 'List容器组件的基础使用', 1),
	new DataItem('pages/ListPages/ListCase', 'List向左滑出案例', 2),
	new DataItem('pages/ListPages/ListItemGroupNote', 'ListItemGroup基础', 3),
	]

通过dataItem.ts 文件我们可以清晰的知道 new DataItem 第一个参数 是path地址, 第二个参数是内容,第三个参数是id标识 **接下来我们将对列表中标识的内容逐一讲解List 组件, 同时没有讲解到的地方的path 地址用 NAN 代替 **

创建数据方式二
代码语言:javascript
复制
private ListItemArr:object[] =[
	{
		"path":"pages/ListPages/ListBasics",
		"label":"List容器组件的基础使用",
		"id":1
	}
]

页面布局如下

代码如下

需要注意的是: Text子组件 Span 是不支持 padding 和margin 属性的

代码语言:javascript
复制
/**
 * @Author: 若城
 * @Description:
 */
import DataItem from '../model/dataItem'
import router from '@ohos.router';
@Entry
	@Component
	struct List_ListItem_ListItemGroup_Note {
		private ListItemArr: Array<DataItem> = [
			new DataItem('pages/ListPages/ListBasics', 'List容器组件的基础使用', 1),
			new DataItem('pages/ListPages/ListCase', 'List向左滑出案例', 2),
			new DataItem('pages/ListPages/ListItemGroupNote', 'ListItemGroup基础', 3),
		]
		//  创建方式二
		//private ListItemArr:object[] =[
		//  {
		//    "path":"pages/ListPages/ListBasics",
		//    "label":"List容器组件的基础使用",
		//    "id":1
		//  }
		//]
		build() {
			Row() {
				Column() {
					Row() {
						Text('List容器组件的基础使用').fontSize(18).fontColor('#999')
					}.width('100%').justifyContent(FlexAlign.Start).padding(10)

					/**
         *  space : 子组件主轴方向的间隔。
         * layoutWeight:父容器尺寸确定时,设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配,忽略元素本身尺寸设置,表示自适应占满剩余空间。
         * 注意 span 组件不支持padding / margin
         * 路由跳转
         * */
					List({ space: 10 }) {
						ForEach(this.ListItemArr, (item, index) => {
							ListItem() {
								Column(){
									Text() {
										Span(item.id.toString() + '.').fontSize(25)
										Span(item.label).fontSize(30)
									}.padding({ left: 10 }).height(100).width('100%')
										.onClick(()=>{
											router.pushUrl({
												url:item.path,
												params:{
													label: item.label
												}
											})
										})

									Divider().color('#999').strokeWidth(2).width('90%')
								}

							}
						})
					}.layoutWeight(1)

				}
				.width('100%')
					.height('100%')
			}
			.height('100%')
				.width('100%')
		}
	}

代码中我们主要通过foreach 的方法遍历了数据源, 并添加点击事件, 让其可以跳转到对应的路由

子路由创建

为了更加清晰的梳理目录结构, 我们在pages 目录下单独创建一个文件夹ListPages 用于存放与List组件相关的page 页面, 如下图所示

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本章内容概要
  • List 容器组件
    • 基本使用模型
      • 创建需要循环的数据
        • class 创建
        • 导入模块
        • 创建数据方式一
        • 创建数据方式二
    • 页面布局如下
      • 代码如下
        • 子路由创建
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档