先看下实现的效果如下:

ListContainer 是用来实现列表的

学习ListContainer 这个属性看实现的源码是少不了的,

在里面看到setItemProvider 应该是用来记载item的

它里面是 BaseItemProvider 在跳进去看看

这个里面有获取item ,以及布局,刷新等,(不过我看的第一次看到getCount,getItem,getItemId,还以为是andriod的viewpage呢,开个玩笑,这里大致能想到,继承这个抽象类的时候,会生成四个方法,getComponent 是加载list的item布局的,getItem是用来获取item内容的,)

看到这,我们要想使用setItemProvider 就要创建一个类来继承这个抽象的BaseItemProvider

明白了大致的思路下面开始,

首先在主界面的xml中写一个ListContainer  具体如下:

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:orientation="vertical"><ListContainerohos:id="$+id:list"ohos:height="match_parent"ohos:width="match_parent"/></DirectionalLayout>

我这里创建了一个 BaseProvider 来继承 BaseItemProvider

生成之后就是往里面添加内容了,具体的如下,

package com.example.myapplication.slice;import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.agp.components.BaseItemProvider;
import ohos.agp.components.Component;
import ohos.agp.components.ComponentContainer;
import ohos.agp.components.LayoutScatter;import java.util.List;public class BaseProvider extends BaseItemProvider {// 定义一个listprivate List<String> list;// 定义一个上下文private AbilitySlice content;public BaseProvider(List<String> list,AbilitySlice content) {super();this.list = list;this.content = content;}@Overridepublic int getCount() {return list == null ? 0 : list.size();}@Overridepublic Object getItem(int i) {return list.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic Component getComponent(int i, Component component, ComponentContainer componentContainer) {component = LayoutScatter.getInstance(content).parse(ResourceTable.Layout_item_sample, null, false);return component;}
}

这里插入的一个item的如下

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_content"ohos:width="match_parent"ohos:orientation="vertical"><Textohos:id="$+id:item"ohos:height="60fp"ohos:width="match_content"ohos:text="HarmonyOS"ohos:layout_alignment="center"ohos:text_size="20fp"/><Textohos:height="1fp"ohos:width="match_parent"ohos:background_element="#00d8a0"/>
</DirectionalLayout>

写好之后就去java里面去试试

下面先写100个数据看看

package com.example.myapplication.slice;import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Component;
import ohos.agp.components.ListContainer;
import ohos.agp.window.dialog.ToastDialog;import java.util.ArrayList;
import java.util.List;public class MainAbilitySlice extends AbilitySlice {private ListContainer listContainer;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_main_layout);listContainer = (ListContainer) findComponentById(ResourceTable.Id_list);List<String> list = new ArrayList<>();for (int i = 0; i < 100; i++) {list.add("");}BaseProvider baseProvider = new BaseProvider(list, this);listContainer.setItemProvider(baseProvider);listContainer.setItemClickedListener(new ListContainer.ItemClickedListener() {@Overridepublic void onItemClicked(ListContainer listContainer, Component component, int i, long l) {new ToastDialog(getContext()).setText("点击了第" + i  + "个").show();}});}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}
}

今天写实现一个简单的list ,list里面的要学习的内容挺多的,后续在更新一些,添加item 和删除item

HarmonyOS ListContainer 实现列表相关推荐

  1. harmonyos鸿蒙,鸿蒙HarmonyOS应用权限列表大全

    HarmonyOS的应用权限严格按照权限分类分级模型进行定义,如图1所示,具体过程可分为三步: 1.根据不同应用所需实现的功能,明确接口是否需要对外开放. 2.根据接口所涉数据的敏感程度或所涉能力的安 ...

  2. 鸿蒙的应用列表,图解鸿蒙列表组件ListContainer

    一.什么是ListContainer ListContainer是用来呈现连续.多行数据的列表组件,包含一系列相同类型的列表项.如下图所示: 二.ListContainer的架构视图 ListCont ...

  3. ListContainer教程

    主文档地址 https://blog.csdn.net/BLUESKYHOST/article/details/111411001 ListContainer 当前教程项目地址 https://git ...

  4. dcase_util教程(二)——各单元介绍

    接着上一篇教程,继续的有各个UTILITIES的介绍.网址 1. Container 数据容器的类.这些数据的目的是为了包装数据,使用有用的方法来访问和操作数据,以及加载和存储数据. 这些容器是从标准 ...

  5. 【python爬虫自学笔记】-----爬取简书网站首页文章标题与链接

    from urllib import request from bs4 import BeautifulSoup #一个可以从html或者xml中提取结构化数据的python库 #构造头文件,模拟浏览 ...

  6. pages文件夹 AddCartSuccess Center Detail Home Login Pay PaySuccess

    pages文件夹 AddCartSuccess <template><div class="cart-complete-wrap"><div clas ...

  7. Hi3861开发环境

    Hi3861开发板介绍 本文档介绍Hi3861 WLAN模组的开发环境搭建.版本编译构建.烧录.源码修改.调试验证等方法.通过学习,开发者会对Hi3861 WLAN模组开发流程有初步认识,并可上手业务 ...

  8. HarmonyOS之常用组件ListContainer的功能和使用

    一.ListContainer 简介 ListContainer 是用来呈现连续.多行数据的组件,包含一系列相同类型的列表项. 二.支持的 XML 属性 ListContainer 的共有 XML 属 ...

  9. HarmonyOS:ListContainer实现表格

    目录 一.场景 二.实现效果 三.实现步骤 1.布局文件 2.适配器 3.主界面逻辑 一.场景   需要一个表格展示一下成绩信息. 二.实现效果 三.实现步骤 1.布局文件 <?xml vers ...

最新文章

  1. IAS的工作原理(一)作为 RADIUS 服务器的 IAS
  2. CCNA笔记-交换机安全
  3. IT顾问成长分享沙龙
  4. c语言编程学生管理,c语言编程,关于学生管理的程序(急急急)
  5. 第五次会议记录:开始进一步需求分析,及初步分工
  6. Matplotlib实例教程(九)热力图
  7. oracle record is locked by another user
  8. VF02 会计凭证过账时间
  9. [AtCoder Regular Contest 123] 题解
  10. 【Java】避免用户篡改查询结果的GUI显示的策略
  11. C语言笔记(数组地址一些细节)
  12. 程序设计与编译(C++入门)
  13. 网页顶部广告展开与收起
  14. 微信公众号网页开发逻辑梳理
  15. 综述摘要怎么写?(含7大容易被忽略的注意事项及80%综述文章常见句型汇总)...
  16. 用java编写人民币转化为美元_js实现数字转人民币、美元的大写汉字
  17. 聚观早报 | 通信行程卡正式宣布下线;《三体》首日播放量破1亿
  18. Web主机管理器(WHM)中如何安装SSL证书
  19. 基于c#条码打印软件源代码 可选择打印机,可选择标签
  20. 文秘专业计算机基础试卷,秘书题库:文秘类专业基础理论课试卷上2

热门文章

  1. python中的新式类与旧式类的一些基于descriptor的概念(上)
  2. Python速度提升
  3. 全面理解Python中的类型提示(Type Hints)
  4. BERT的通俗理解 预训练模型 微调
  5. LeetCode简单题之排列硬币
  6. TVM Reduction降低算力
  7. java显示当月数据_Java统计当月与往月数据 使用StringTemplate
  8. HarmonyOS 点击事件的实现
  9. onAttach 显示过时的处理方法
  10. java 增强for循环(foreach)