鸿蒙开发实战案例—QQ联系人开发教程

本次案例挑选了QQ4个tab中相对较难的一个页面进行开发

先看一下本次案例的最终效果图:

在这里插入图片描述


这个页面的难点在于在List组件又嵌套了一个可以左右滑动的联系人分类,以及好友分组的展开和收起。

现在我们从上到下来开发这个界面,首先是导航栏,没啥好说的,直接上代码:

@Builder NavigationMenus() { Row() {Image($r('app.media.menu_add')).size({ width: 24, height: 24 }).onClick(()=>{})}.justifyContent(FlexAlign.End).width('100%').height('100%')}@Builder NavigationTitle() {Row(){Text("联系人").width('100').fontSize(18).fontColor(Color.White)}.width('100%').height('100%').justifyContent(FlexAlign.Center)}
Navigation(){
}
.title(this.NavigationTitle())
.mode(NavigationMode.Stack)
.titleMode(NavigationTitleMode.Mini)
.hideBackButton(true)
.menus(this.NavigationMenus())
.size({ width: '100%', height: '100%' })
.backgroundColor(this.selectColor)

导航栏下面的内容区域显然是个List组件,List中又分为两个Group:

在这里插入图片描述


上面的group非常简单,不再多说,主要看下面的部分,小编进行了多次尝试,最终发现使用Tabs的效果更好。

Tabs({index:this.currentIndex,controller: this.controller }) {TabContent() {Text('好友')}.tabBar(this.TabTextBuilder('好友',0))TabContent() {Text('分组')}.tabBar(this.TabTextBuilder('分组',1))TabContent() {Text('群聊')}.tabBar(this.TabTextBuilder('群聊',2))TabContent() {Text('设备')}.tabBar(this.TabTextBuilder('设备',3))TabContent() {Text('通讯录')}.tabBar(this.TabTextBuilder('通讯录',4))TabContent() {Text('订阅号')}.tabBar(this.TabTextBuilder('订阅号',5))}.backgroundColor('rgb(247,247,247)').onChange((index:number)=>{this.currentIndex=index}).barWidth('100%').barHeight(45).width('100%').height('100%').scrollable(true)

然后我们要着手开发好友列表,对于展开和收起,小编的思路是创建一个数组来存储展开状态,比如现在有两个好友分组,分别是我的好友和同学,那我就创建一个boolean类型的数组,并初始化为[false,false],默认都不展开,当我点击某一行就将对应的值修改,代码如下:

ForEach(this.expands[index] == 1?object.list : [],(item,i)=>{ListItem(){Flex({direction:FlexDirection.Row,alignItems:ItemAlign.Center}){Image($r('app.media.headicon')).width(40).height(40).borderRadius(20).margin({left:8})Flex({direction:FlexDirection.Column,justifyContent:FlexAlign.Center}){Text(item.name).fontColor(Color.Gray).fontSize(17)Text('[在线]记忆它总是慢慢累积!!')}.margin({left:5})}.height(60).backgroundColor(Color.White)}})

最后

随着鸿蒙开发越来越火热,我了解到现在有很多小伙伴想入行鸿蒙,但又不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。我给大家整理了一份实用的鸿蒙(Harmony OS)开发学习手册资料用来跟着学习是非常有利于帮助大家提升鸿蒙开发技术的。

相对于网上那些碎片化的知识内容,这份学习资料的知识点更加系统化,更容易理解和记忆。资料包含了、应用开发导读(ArkTS)、HarmonyOS 概念、如何快速入门、开发基础知识、基于ArkTS 开发、等鸿蒙开发必掌握的核心知识要点,内容包含了(技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→《鸿蒙星河版开发教程指南》

鸿蒙(Harmony NEXT)最新学习路线

在这里插入图片描述

有了路线图,怎么能没有学习资料呢,小编也准备了几套HarmonyOS NEXT学习视频 内容包含以下联

内容包含:ArkTS、TypeScript、ArkUI、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→《HarmonyOS教学视频》

HarmonyOS教学视频

在这里插入图片描述

鸿蒙语法ArkTS、TypeScript、ArkUI等…视频教程

鸿蒙生态应用开发白皮书V2.0PDF:

获取白皮书:请点击→《鸿蒙生态应用开发白皮书V2.0PDF》

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册

一、入门必看

  1. 应用开发导读(ArkTS)
  2. .……

在这里插入图片描述
二、HarmonyOS 概念

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

在这里插入图片描述
三、如何快速入门?

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. .……

在这里插入图片描述
四、开发基础知识

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. .……

在这里插入图片描述
五、基于ArkTS 开发

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. .……

在这里插入图片描述
更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙 (Harmony OS)开发学习手册》

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

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

相关文章

适合一个人开的实体店:轻松创业,快速盈利的秘诀

在当今的创业潮流中,很多人都渴望拥有一份属于自己的事业。如果你也想独自创业,开一家实体店,那么这篇文章将为你提供一些有价值的干货信息。作为一名经营5年酸奶吧的创业者,我将分享一些经验和见解,帮助你轻松创业并实…

【MD】金属-半导体界面超快辐射诱导熔化的分子动力学模拟

这篇文章是一篇发表在《Journal of Applied Physics》上的论文,标题为“Molecular dynamics simulations of ultrafast radiation induced melting at metal–semiconductor interfaces”,作者为Ashwin Ravichandran, Mohit Mehta, Andrew A. Woodworth,…

Python爬虫案例-爬取主题图片(可以选择自己喜欢的主题)

2024年了,你需要网络资源不能还自己再慢慢找吧? 跟着博主一块学习如何利用爬虫获取资源,从茫茫大海中寻找那个她到再妹子群中找妹子,闭着眼睛都可以找到合适的那种。文章有完整示例代码,拿过来就可以用,欢迎…

洛谷 [传智杯 #5 初赛] B-莲子的机械动力学

题目链接:[传智杯 #5 初赛] B-莲子的机械动力学 题目背景 【题目背景和题目描述的两个题面是完全等价的,您可以选择阅读其中一部分。】 专攻超统一物理学的莲子,对机械结构的运动颇有了解。如下图所示,是一个三进制加法计算器的…

Django 反向解析路由

app2.urls.py from django.urls import path, re_path from . import viewsurlpatterns [path(index, views.index, nameindex),path(url_reverse, views.url_reverse, nameapp2_url_reverse), # 使用reverse()方法反向解析 ,name对于视图的reverse("app2_url_reverse&…

面临挑战:共享WiFi贴项目能否长久存在?

共享WiFi贴项目会长久吗?这个问题是很多创业者想要了解的事情,随着5G网络和共享经济的兴起,共享WiFi贴项目应运而生。在这个信息时代,网络已成为人们日常生活中不可或缺的一部分,而WiFi作为网络的一种接入方式&#xf…

什么是大型语言模型(LLM)?

大型语言模型 (LLM) 是一种能够理解和生成人类语言文本的机器学习模型。它们通过分析大量语言数据集来工作。 一、什么是大型语言模型 (LLM)? 大型语言模型 (LLM) 是一种人工智能 (AI) 程序,它可以识别和生成文本以及完成其他任务。LLM 经过了庞大的数据…

(vue)Module Error (from ./node_modules/eslint-loader/index.js)

(vue)Module Error (from ./node_modules/eslint-loader/index.js) 方法1:直接关闭eslint // vue.config.js module.exports {lintOnSave: false, //关闭eslint语法检查...... }方法2: 参考:解决参考 解决参考:如何修复vue-cli…

Ollama 运行 Cohere 的 command-r 模型

Ollama 运行 Cohere 的 command-r 模型 0. 引言1. 安装 MSYS22. 安装 Golang3. Build Ollama4. 运行 command-r 0. 引言 Command-R Command-R 是一种大型语言模型,针对对话交互和长上下文任务进行了优化。它针对的是“可扩展”类别的模型,这些模型在高…

uniapp+uview 学习笔记(二)—— H5开发

文章目录 前言一、开发步骤1.创建项目2.安装组件库并导入使用3.封装请求4.国际化5.打包 总结 前言 本文主要介绍使用uniapp框架和uview组件库进行H5开发,需要用到的开发工具为HBuilder X。 一、开发步骤 1.创建项目 打开HBuilder X,在顶部栏目选择 新…

网络安全框架和云安全参考架构介绍

目录 一、网络安全框架 1.1 概述 1.2 IATF框架 1.2.1 框架来源 1.2.2 框架结构图 1.2.3 框架内容 1.2.3.1 人(People) 1.2.3.2 技术(Technology) 1.2.3.3 操作(Operation) 1.3 NIST网络安全框架 …

javaAPI操作Elasticsearch

mapping属性 mapping是对索引库中文档的约束, 常见的mapping属性包括: type: 字段数据类型,常见的简单类型有: 字符串: text(可分词的文本), keyword(精确值, 例如: 品牌,国家)数值: long, integer, short, byte, double, float布尔: boolean日期: date对象: object index: 是否…

Hive 数据迁移与备份

迁移类型 同时迁移表及其数据(使用import和export) 迁移步骤 将表和数据从 Hive 导出到 HDFS将表和数据从 HDFS 导出到本地服务器将表和数据从本地服务器复制到目标服务器将表和数据从目标服务器上传到目标 HDFS将表和数据从目标 HDFS 上传到目标 Hiv…

FX110网:“炒金热”再现,汇友却被困在了假冒万洲金业!

近日,一汇友炒金就选错了平台,他交易的“万洲金业”不对劲! 在假冒“万洲金业”反复折腾 据汇友描述,他此前经朋友指导,下载了一个“万洲金业”的APP,该平台宣称为香港金银业贸易场AA类141号行员&#xff0…

在Linux系统安装MySQL步骤

准备工作:下载好mysql(Mariadb)安装包: 第一步:检查系统中是否有自带的MySQL(Mariadb); # 下面这两个都执行一下 [rootcentos101 opt]# rpm -qa | grep mysql [rootcentos101 opt]#…

大数据面试题 —— Flume

目录 介绍 FlumeFlume 架构请说一下你提到的几种 source 的不同点Flume 传输数据时如何保证数据一致性TailDir 为什么可以断点重传说下Flume事务机制Sink 消费能力弱,Channel 会不会丢失数据数千个Flume要怎么统一配置,修改就分发吗Flume一个节点宕机了怎…

用 二层口 实现三层口 IP 通信的一个实现方法

我们一般用 undo portswitch 来将二层口转为三层口,但如果设备不支持的话,那么。。。 一、拓朴图: 二、实现方法: 起一个 vlan x,配置 vlanif地址,然后二层口划分到 vlan x 下,对端做同样的配置…

一、MySQL基础学习

目录 1、MySQL启动2、MySQL客户端连接3、SQL3.1、SQL语句分类3.2、DDL(数据库定义语言)3.2.1、操作数据库3.2.2、操作数据表 3.3、DML(数据库操作语言)3.3.1、增加 insert into3.3.2、删除 delete3.3.3、修改 update 3.4、DQL&…

用python模拟天体运动(二体运动与天体轨道稳定问题)

目录 1. 模拟天体运动的代码 2. 运行效果 3. 非平方反比(轨道稳定性问题) 1. 模拟天体运动的代码 接下来我们将用python模拟实现天体运动 以下是我们所需要的库: import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy …

Java安装及环境配置详细教程

1.1 下载 Java 安装包 官网下载链接[点击跳转] 建议下载202版本,因为202版本之后的 Oracle JDK 是商用收费的(个人使用不收费) 1.2 勾选红框中内容,然后点击下方下载 1.3 如果没有登录 Oracle 则会跳转到该页面,因为…