【Harmony OS 4.0】水果排行榜案例

server/2024/9/20 7:06:04/ 标签: Harmony OS 4.0

在这里插入图片描述
ets/example2/Models

export class FruitsData {id: stringname: stringvote: stringconstructor(id: string, name: string, vote: string) {this.id = idthis.name = namethis.vote = vote}
}

ets/example2/TitleComponent

// app标题子组件
import APPContext from '@ohos.app.ability.common'@Component
export struct TitleComponent {@Prop title: string = ''@Link isRefreshDate: booleanbuild() {Row() {Row() {Image($r('app.media.back')).width(16).height(16).margin({ right: 18 }).onClick(() => {let context = getContext(this) as APPContext.UIAbilityContext // 获得上下文环境,继承自Contextcontext.terminateSelf() // 关闭当前组件})Text(this.title).fontSize(20)}.width('50%').height('100%').justifyContent(FlexAlign.Start)Row() {Image($r('app.media.loading')).width(18).height(18).onClick(() => {this.isRefreshDate = !this.isRefreshDate})}.width('50%').height('100%').justifyContent(FlexAlign.End)}.width('100%').height(55).padding({ left: 10, right: 10 }).justifyContent(FlexAlign.SpaceAround)}
}

ets/example2/TableHeaderComponent

// 表头子组件
@Component
export struct TableHeaderComponent {@Prop widthValue: Length = 0 // 表头组件宽度@Prop paddingValue: Padding | Length = 0 // 表头内边距build() {Row() {Text('排名').fontSize(16).width('20%').fontColor('#888888')Text('种类').fontSize(16).width('50%').fontColor('#888888')Text('得票数').fontSize(16).width('30%').fontColor('#888888')}.width(this.widthValue).height(40).padding(this.paddingValue).justifyContent(FlexAlign.SpaceAround)}
}

ets/example2/ItemComponent

// 列表子组件
@Component
export struct ItemComponent {@Prop index: number@Prop name: string@Prop vote: string@State isChoice: boolean = falsebuild() {Row() {Column() {if (this.isCircleText()) {this.CreateCircleText(this.index)} else {Text(this.index.toString()).fontSize(18).fontWeight(600)}}.width('20%').alignItems(HorizontalAlign.Start)Column() {Text(this.name).fontColor(this.isChoice? '#5500FF' : '000000').fontSize(18).fontWeight(600)}.width('50%').alignItems(HorizontalAlign.Start)Column() {Text(this.vote).fontColor(this.isChoice? '#5500FF' : '000000').fontSize(18).fontWeight(600)}.width('30%').alignItems(HorizontalAlign.Start)}.width('100%').height(48).onClick(() => {this.isChoice = !this.isChoice})}// 创建圆形文本框的构建函数@BuilderCreateCircleText(index: number) {Row() {Text(index.toString()).fontSize(18).fontColor(Color.White).fontWeight(600)}.justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center).borderRadius(24).size({ width: 22, height: 22 }).backgroundColor('#5500FF')}// 判断函数isCircleText(): boolean {return this.index === 1 || this.index === 2 || this.index === 3}
}

ets/example2/Index

// 父组件
import { FruitsData } from "./Models"
import { TitleComponent } from './TitleComponent'
import { TableHeaderComponent } from './TableHeaderComponent'
import { ItemComponent } from './ItemComponent'@Entry
@Component
struct Index {@State dataSource1: FruitsData[] = [new FruitsData('1', '苹果', '5432'),new FruitsData('2', '西梅', '3676'),new FruitsData('3', '无花果', '2254'),new FruitsData('4', '水蜜桃', '2154'),new FruitsData('5', '葡萄', '2023'),new FruitsData('6', '圣女果', '1973'),new FruitsData('7', '西瓜', '1817'),new FruitsData('8', '香蕉', '1732'),]@State dataSource2: FruitsData[] = [new FruitsData('9', '西梅', '6676'),new FruitsData('10', '无花果', '6354'),new FruitsData('11', '杨梅', '5853'),new FruitsData('12', '西瓜', '4817'),new FruitsData('13', '香蕉', '3732'),new FruitsData('14', '榴莲', '2704'),new FruitsData('15', '杨桃', '1636'),new FruitsData('16', '梨', '1422'),]@State isSwitchDataSource: boolean = truebuild() {Column() {Row() {TitleComponent({ isRefreshDate: $isSwitchDataSource, title: '水果排行榜' })}Row() {TableHeaderComponent({ widthValue: '92%', paddingValue: { left: 15, right: 15 } }).margin({ top: 15, bottom: 10 })}Row() {this.CreateArrayItemComponent()}}.width('100%').height('100%').backgroundColor('#EEEEEE')}@BuilderCreateArrayItemComponent() {Column() {List() {ForEach(this.isSwitchDataSource ? this.dataSource1 : this.dataSource2, (item: FruitsData, index: number) => {ListItem() {ItemComponent({ index: index + 1, name: item.name, vote: item.vote })}})}.width('100%').height("65%").divider({ strokeWidth: 1 })}.width('92%').padding({ left: 15, right: 15 }).borderRadius(20).alignItems(HorizontalAlign.Center).backgroundColor(Color.White)}
}

http://www.ppmy.cn/server/102057.html

相关文章

【ARM 芯片 安全与攻击 5.4 -- Meltdown 攻击与防御介绍】

文章目录 什么是 Meltdown 攻击?Meltdown 攻击的基本原理Meltdown 攻击代码示例Meltdown 攻击在芯片中的应用应用场景Meltdown 攻击与瞬态攻击、测信道攻击的关系针对 Meltdown 攻击的防御硬件级防御Summary什么是 Meltdown 攻击? Meltdown 攻击是一种利用处理器乱序执行(o…

【网络编程】组播的实现(C语言,linux,Ubuntu)

组播 1> 组播也是实现一对多的通信方式,对于广播而言,网络需要对每个消息进行复制转发,会占用大量的带宽,导致网络拥塞 2> 组播可以实现小范围的数据传播:将需要接收数据的接收端加入多播组,发送端…

Linux---05---用户组权限

课程回顾 vim编辑器 本章重点 文件权限 用户管理 用户组管理 一、文件权限 由于Linux是一个多人多任务的系统,因此经常会出现同一台机器同时有多个人进行操作,为了考虑每个人的隐私权以及每个人喜好的工作环境,所以文件的权限归属就至关…

50Kg大载重六旋翼无人机技术详解

50Kg大载重六旋翼无人机的机体结构设计是确保其高承载能力和飞行稳定性的基础。该机体通常采用轻质高强度的材料如碳纤维、铝合金或复合材料构建,以在保证结构强度的同时减轻整机重量。设计过程中,需考虑空气动力学原理,优化机臂布局、机身形…

Leetcode面试经典150题-189.轮转数组

解法都在代码里,不懂就留言或者私信 class Solution {public void rotate(int[] nums, int k) {/**向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]....向右轮转 7 步: [1,2,3,4,5,6,7] *//**既然反转数组的倍数是不需…

oracle使用sql生成表结构文档

oracle使用sql生成表结构文档 背景 客户要求数据资产盘点,需要提供相关表字段的说明文档,指定具体格式。手动是不可能手动的, 使用SQL实现。 要求 实现 生成脚本sql 查询所有非临时表 SELECT table_name FROM all_tables WHERE temporary N;--默认…

sp-eric靶机

端口扫描 靶机ip地址为192.168.7.46 目录扫描 访问80端口 拼接访问 /admin.php 发现登录框 测试sql注入,弱口令等,无结果 扫描目录发现了.git文件,存在源码泄漏 将其下载到kali上读取 python2 GitHack.py -u http://192.168.7.180/.git/…

深入探索CANoe的CAPL语言

概述 在汽车电子和嵌入式系统开发领域,仿真和测试是确保功能正确性和性能标准的关键步骤。Vector公司的CANoe软件是这一领域的佼佼者,它提供了一个强大的平台,用于模拟、测试和分析汽车网络,特别是CAN网络。今天,我们…

无人机电池详解!!!

娱乐型和玩具型无人机 这类无人机的电池容量通常较小,以满足短时间娱乐飞行的需求。电池容量范围一般在500mAh至3000mAh之间,轻便、易携带,适合初学者和休闲玩家。 航拍无人机 普通航拍无人机追求高续航能力,电池容量一般在500…

玩转单例模式

目录 1. 饿汉式 2. 懒汉式 3. volatile解决指令重排序 4. 反射破坏单例模式 5. 枚举创建单例模式 所谓单例模式,就是是某个类的实例对象只能被创建一次,单例模式两种实现:饿汉式和懒汉式。 1. 饿汉式 所谓饿汉式,顾名思义…

Lambda表达式与流式编程

一、Lambda表达式 1.1 什么是lambda表达式 Lambda表达式是 jdk1.8 引入的一个新特性,它是函数式编程在Java中的一种体现。也是1.8最值得学习的新特性。 1. Lambda表达式实际上就是匿名内部类的简化版本。 2. Lambda表达式是jdk1.8引入的一个最重要的新特性&…

VUE(一)——nextTick

DOM更新循环结束后执行延迟回调,在数据修改以后立即使用该方法可获取更新后的DOM。 (*问题1)DOM更新循环? VUE中使用异步执行DOM更新,在修改数据之后视图不会立即更新,而是等同一事件循环中的所有数据变化…

Java后端面试题(mq相关)(day9)

目录 为什么用MQ? 异步 、削峰、解耦1. 异步处理2. 解耦3. 削峰填谷 Exchange类型什么是死信队列?如何保证消息的可靠性?RabbitMQ中如何解决消息堆积问题?RabbitMQ中如何保证消息有序性?如何防止消息重复消费?(如何保证消息幂等…

ARM——体系结构

计算机体系结构:冯诺伊曼 哈佛 冯诺依曼结构 冯诺依曼结构,也称冯诺依曼模型或普林斯顿结构,是根据冯诺依曼提出的存储程序概念设计的计算机体系结构。其主要特点包括: 存储程序:指令与数据都…

嵌入式 | 嵌入式 Linux 系统使用摄像头

点击上方"蓝字"关注我们 01、引言 >>> 在嵌入式 Linux 系统使用摄像头 俗话说“眼见为实”,这或许是为什么近年来摄像头在嵌入式系统上快速增长的原因。它们被用于不同的场景,如: 远程监控:典型的例子是闭路电视,监控人员在监视环境(或许你所在的大楼…

web开发环境搭配与创建javaee项目

一.web开发 (1)web开发指的是前端,后端,以及数据库进行交互,前端发送请求到后端,后端经过程序处理后到达数据库,最后在进行后端处理响应回前端。 (2)一次三端交互的doget或者dopost简单请求流程 (3)web开发除了需要前端,后端,数据库开发工具…

C#垃圾处理机制相关笔记

C#编程中的垃圾处理机制主要通过垃圾回收器(Garbage Collector,GC)实现自动内存管理。C#作为一种托管语言,其垃圾处理机制显著减轻了程序员的内存管理负担,与C语言等非托管语言形成鲜明对比。具体介绍如下:…

ElasticSearch相关知识点

ElasticSearch中的倒排索引是如何工作的? 倒排索引是ElasticSearch中用于全文检索的一种数据结构,与正排索引不同的是,正排索引将文档按照词汇顺序组织。而倒排索引是将词汇映射到包含该词汇的文档中。 在ElasticSearch中,倒排索…

ArrayList 和 LinkedList 的区别是什么

数据结构实现:ArrayList 是动态数组的数据结构实现,而 LinkedList 是双向链表的数据结构实现。随机访问效率:ArrayList 比 LinkedList 在随机访问的时候效率要高,因为 LinkedList 是线性的数据存储方式,所以需要移动指…

greenplum授权

1. 表空间(Tablespace) CREATE:创建表空间权限USAGE:使用表空间权限 在Greenplum数据库中,表空间(Tablespace)是用于存储数据库对象的物理位置。以下是表空间相关的授权和相应的语法&#xff…