赞
踩
本次案例挑选了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 开发、等鸿蒙开发必掌握的核心知识要点,内容包含了(技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习路线,请点击→《鸿蒙星河版开发教程指南》
有了路线图,怎么能没有学习资料呢,小编也准备了几套HarmonyOS NEXT学习视频 内容包含以下联
内容包含:ArkTS、TypeScript、ArkUI、资源分类…等知识点。
获取以上完整版高清学习路线,请点击→《HarmonyOS教学视频》
获取白皮书:请点击→《鸿蒙生态应用开发白皮书V2.0PDF》
一、入门必看
二、HarmonyOS 概念
三、如何快速入门?
四、开发基础知识
五、基于ArkTS 开发
更多了解更多鸿蒙开发的相关知识可以参考:《鸿蒙 (Harmony OS)开发学习手册》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。