探索arkui(2)--- 布局(列表)--- 1(列表数据的展示)

news2024/11/27 2:20:21

前端开发布局是指前端开发人员宣布他们开发的新网站或应用程序正式上线的活动。在前端开发布局中,开发人员通常会展示新网站或应用程序的设计、功能和用户体验,并向公众宣传新产品的特点和优势。前端开发布局通常是前端开发领域的重要事件,吸引了广泛的关注和关注。通过前端开发布局,开发人员可以推广他们的新产品,增加用户的关注和使用,并提高自己的品牌知名度。同时,前端开发布局也为用户提供了了解和体验新产品的机会,帮助他们更好地了解和使用新的网站或应用程序。鸿蒙开发亦是如此。

 列表

官网描述

列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求(如通讯录、音乐列表、购物清单等)。

使用列表可以轻松高效地显示结构化、可滚动的信息。通过在List组件中按垂直或者水平方向线性排列子组件ListItemGroup或ListItem,为列表中的行或列提供单个视图,或使用ForEach迭代一组行或列,或混合任意数量的单个视图和ForEach结构,构建一个列表。List组件支持使用条件渲染、循环渲染、懒加载等渲染控制方式生成子组件。

我的理解 

有点类似于只有一列的表格,超出屏幕自带滚动条

代码

import util from '@ohos.util';

class Contact {
  key: string = util.generateRandomUUID(true);
  name: string;
  icon: Resource;

  constructor(name: string, icon: Resource) {
    this.name = name;
    this.icon = icon;
  }
}

@Entry
@Component
struct ContactsList {
  @State selectedIndex: number = 0;

  @Builder itemHead(text: string) {
    // 列表分组的头部组件,对应联系人分组A、B等位置的组件
    Text(text)
      .fontSize(20)
      .backgroundColor('#fff1f3f5')
      .width('100%')
      .padding(5)
  }

  private contacts = [
    new Contact('小明', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
    new Contact('小红', $r("app.media.app_icon")),
  ]

  build() {
    Stack({ alignContent: Alignment.End }) {
      List() {
        // 循环渲染ListItemGroup,contactsGroups为多个分组联系人contacts和标题title的数据集合
        ForEach(this.contacts, (item: Contact) => {
          ListItem() {
            Row() {
              Image(item.icon)
                .width(40)
                .height(40)
                .margin(10)
              Text(item.name).fontSize(20)
            }
            .width('100%')
            .justifyContent(FlexAlign.Start)
          }
        }, item => item.key)
      }.onScrollIndex((firstIndex: number) => {
        this.selectedIndex = firstIndex
      }).divider({
        strokeWidth: 1,
        startMargin: 60,
        endMargin: 10,
        color: '#ffe9f0f0'
      }).scrollBar(BarState.Auto)
      .sticky(StickyStyle.Header)
    }
  }
}

效果

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

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

相关文章

JS-项目实战-批量删除水果库存记录

1、fruit.js function $(name) {if (name) {//假设name是 #fruit_tblif (name.startsWith("#")) {name name.substring(1); //fruit_tblreturn document.getElementById(name);} else {return document.getElementsByName(name);}} }//当页面加载完成后执行后面的…

Linux_包管理_apt相关命令的使用

以思维导图的形式整理了下apt相关的命令,便于查阅,主要分为软件源、安装卸载升级、查看; 1、软件源 2、安装、卸载、升级 3、查看 参考链接: Using apt Commands in Linux [Ultimate Guide] 6. apt更新软件源 — 快速使用手册—…

Kettle工具使用小结1

1.背景 客户数据库限定为tidb数据库,相关业务数据均存储在内。因为tidb数据库是分布式的,且不支持存储过程、job等功能,需要通过外部工具进行脚本批量处理,所以这里引入kettle进行脚本批量执行和作业调度。 2.环境信息 &#xf…

电影《惊奇队长2》观后感

上周看完了电影《惊奇队长2》,可能是最近国片看多了,看看国外电影还是感觉非常不错的,其中就有特效部分。目前来说,国内特效和国外还是有一定差距的,在过年时,备受好评的《流浪地球2》据说也是用的国外特效…

【Linux】安全审计-audit

文章目录 一、audit简介二、启auditd服务三、相关文件四、审计规则五、审计日志查询及分析 参考文章: 1、【安全】linux audit审计使用入门 2、audit详细使用配置 写在前面: 1.写博客,做日常工作记录,好记性不如烂笔头嘛&#x…

【AI视野·今日Sound 声学论文速览 第三十三期】Wed, 25 Oct 2023

AI视野今日CS.Sound 声学论文速览 Wed, 25 Oct 2023 Totally 8 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers CDSD: Chinese Dysarthria Speech Database Authors Mengyi Sun, Ming Gao, Xinchen Kang, Shiru Wang, Jun Du, Dengfeng Yao, Su Jing W…

Notepad++ 和正则表达式 只保留自己想要的内容

一、需求 如下文本,三段相同结构的数据,想要获取每段结构中‘重复的Ids ’后面的数字 2023-10-26 18:49:49 重复的Ids 26443,26575 要删除的Ids 4174,4199,4200,55502023-10-26 18:49:49 重复的Ids 26436,26443,26575 要删除的Ids 4166,4199,4200,5550…

WEB 自动化神器 TestCafe(一)—安装和入门篇

今天小编给大家带来WEB 自动化神器 TestCafe(一) —安装和入门篇 一、TestCafe 介绍: TestCafe 是一款基于 Node.js 的端到端 Web 自动化测试框架,支持 TypeScript 或 JavaScript 来编写测试用例,运行用例,并生成自动化测试报告。…

软件外包开发文档工具

有许多工具可用于生成和管理软件开发文档。这些工具可以帮助团队更有效地协作、记录和维护文档。以下是一些常用的软件开发文档生成工具,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 Javadoc&#…

ESP8266跟ESP-01S区别

看到了吧:ESP8266是一个芯片;ESP8266芯片是由外国的乐鑫公司生产的 ESP8266 Wi-Fi SoC | Espressif Systems ESP-01包含了ESP8266芯片,并且有一些外围电路,这个模块(不是芯片)是由中国的安可信公司生产的。…

2023最新软件测试20个基础面试题及答案

什么是软件测试? 答案:软件测试是指在预定的环境中运行程序,为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。 软件测试的目的是什么? 答案:软件测试的主要目的是保证软件的质量,并尽可能大…

【深度学习实验】网络优化与正则化(六):逐层归一化方法——批量归一化、层归一化、权重归一化、局部响应归一化

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、优化算法0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正:动量法Momen…

linux进程间通信之管道通信

Linux 进程间通信机制分三类:数据交互,同步,信号。理解了这些机制才能灵活运用操作系统提供的 IPC 工具。 一.管道 管道是一种文件形式,是内核的一块缓冲区。匿名管道只能用于具有亲缘关系的进程间通信,命名管道可以用…

C语言对10个数进行排序,使用快速排序算法

完整代码&#xff1a; // 对10个数进行排序&#xff0c;使用快速排序算法 #include<stdio.h>//用第一个元素将待排序序列划分成左右两个部分&#xff0c;返回排序后low的位置&#xff0c;即枢轴的位置 int partition(int arr[],int low,int high){//让待排序序列中的第一…

操作系统OS/存储管理/内存管理/内存管理的主要功能_基本原理_要求

基本概念 内存管理的主要功能/基本原理/要求 **内存管理的主要功能&#xff1a; ** 内存空间的分配与回收。由操作系统完成主存储器空间的分配和管理&#xff0c;使程序员摆脱存储分配的麻烦&#xff0c;提高编程效率。地址转换。在多道程序环境下&#xff0c;程序中的逻辑地…

【Git 全功能解析: 探索版本控制的强大工具】

文章目录 概要集中式版本管理和分布式版本管理Git 基础命令基本流程开发管理 概要 “Git 的历史与现状” Git是Linux的创始人Linus Torvalds的又一力作。在2002年&#xff0c;他在Linux内核的版本控制中使用Bitkeeper&#xff0c;但由于Bitkeeper是一款受版权保护的软件&…

什么是脏读、不可重复读、幻读讲解

数据库隔离级别是数据库管理系统中一个重要的概念&#xff0c;它定义了事务之间的可见性和影响。在多用户并发访问数据库时&#xff0c;隔离级别能够确保事务之间的相互独立性&#xff0c;避免数据不一致的问题。本文将深入探讨三种常见的并发问题&#xff1a;脏读、不可重复读…

TikTok运营干货——养号篇

随着国内抖音红利的进一步释放&#xff0c;越来越多人涌入了TikTok国内外市场。而TikTok作为海外新兴的社媒平台&#xff0c;也在迅速的发展着&#xff0c;吸引了大批的跨境电商玩家入驻。然而&#xff0c;TikTok运营的一大难点就是养号&#xff0c;许多人还没开始转化号就被封…

vue3别名配置(vite)

1、配置别名的优点&#xff1a; 在VUE项目中import导入文件时&#xff0c;可以写相对路径. 2、在vite.config.js中配置 a. 首先引入path import path from "path"/* */ b.在resolve添加别名&#xff0c;例如&#xff1a; alias:{"~":path.resolve(__di…

零基础快速上手FFmpeg!一篇就够啦~

在这个自媒体盛行的时代&#xff0c;音视频&#xff08;电影、音乐&#xff09;对于我们来说是再熟悉不过了吧。那么对于一个音视频文件&#xff0c;都有哪些属性呢&#xff1f;以视频为例&#xff0c;我们可以通过如下命令查看其信息。 > ffmpeg -i .\demo.mp4 ffmpeg ver…