本次案例挑选了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)开发学习手册
一、入门必看
- 应用开发导读(ArkTS)
- .……
二、HarmonyOS 概念
- 系统定义
- 技术架构
- 技术特性
- 系统安全
- …
三、如何快速入门?
- 基本概念
- 构建第一个ArkTS应用
- 构建第一个JS应用
- .……
四、开发基础知识
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- .……
五、基于ArkTS 开发
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- .……
更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙 (Harmony OS)开发学习手册》