四、HarmonyOS Next案例展示页面:MainPage深度解析

简介: MainPage.ets是HarmonyOS Next开发者手册应用中的三级页面,它作为具体案例的展示页面,连接了二级导航页面和具体的功能展示。本文将深入分析这个文件的代码结构、UI组件使用以及导航实现,帮助开发者理解HarmonyOS应用的多级页面设计模式。


项目源码已开源(持续更新中~~): https://gitcode.com/nutpi/HarmonyosNextCaseStudyTutorial

项目演示

注意: 项目需要再真机或模拟器中运行, 否则会出现部分图片无法展示的问题



一、概述

MainPage.ets是HarmonyOS Next开发者手册应用中的三级页面,它作为具体案例的展示页面,连接了二级导航页面和具体的功能展示。本文将深入分析这个文件的代码结构、UI组件使用以及导航实现,帮助开发者理解HarmonyOS应用的多级页面设计模式。

二、文件结构分析

1. 导入声明

import router from '@ohos.router';

这部分代码导入了HarmonyOS提供的路由服务,用于页面跳转。与二级页面相同,MainPage也使用了@ohos.router模块来实现页面间的导航。

2. 组件声明

@Component
export struct MainPage {
    // 组件实现
}

与二级页面不同,MainPage使用了@Component装饰器而非@Entry@Component的组合。
主要是三级页面在我的设计中应该是案例的分层, 因此这里采用的用静态模块来开发, 从而避免多项目的影响不利于单独案例的掌握

三、UI结构实现

1. 整体布局

Column({ space: 30 }) {
    // 内容组件
}
.backgroundColor('#F0F5FF')// 淡蓝色背景
.alignItems(HorizontalAlign.Start)
.justifyContent(FlexAlign.Start)
.height('100%')
.width('100%')

页面使用Column组件作为根容器,实现了垂直布局:

  • 设置了组件间距为30像素
  • 背景色为淡蓝色(#F0F5FF),与一级和二级页面保持一致
  • 内容左对齐(HorizontalAlign.Start)
  • 占满整个屏幕(100%宽高)

这种布局方式简洁明了,适合展示案例内容。

2. 导航按钮设计

Row() {
    Button('Blogs')
        .fontSize(16)
        .foregroundColor('#f5f5f5')
        .padding({
            left: 16,
            right: 16,
            top: 8,
            bottom: 8
        })
        .borderRadius(8)
        .onClick(() => {
            router.pushUrl({url:"view/BlogViewList"})
        })
    Button('← 返回')
        .fontSize(16)
        .foregroundColor('#f5f5f5')
        .padding({
            left: 16,
            right: 16,
            top: 8,
            bottom: 8
        })
        .borderRadius(8)
        .onClick(() => {
            router.back();
        })
}
.margin({ right: 32 })
.alignItems(VerticalAlign.Bottom)
.justifyContent(FlexAlign.SpaceBetween)
.width('100%')
.height('50rpx')

导航区域使用Row容器,包含两个按钮:

  1. Blogs按钮
  • 点击时使用router.pushUrl导航到博客列表页面
  • 目标路径为"view/BlogViewList"
  1. 返回按钮
  • 文本包含左箭头符号(←),增强可识别性
  • 点击时使用router.back()返回上一页

两个按钮共享相同的样式:

  • 字体大小:16像素
  • 文字颜色:浅灰色(#f5f5f5)
  • 内边距:水平16像素,垂直8像素
  • 边框圆角:8像素

按钮容器的设计特点:

  • 右侧外边距:32像素
  • 底部对齐(VerticalAlign.Bottom)
  • 两端对齐(FlexAlign.SpaceBetween),使两个按钮分别位于行的两端
  • 宽度:100%
  • 高度:50rpx(响应式像素单位)

四、导航功能实现

1. 返回导航

Button('← 返回')
    // 样式属性...
    .onClick(() => {
        router.back();
    })

返回导航使用router.back()方法,将用户带回上一页(二级页面)。这与二级页面中的返回按钮实现方式相同,保持了导航体验的一致性。

2. 博客列表导航

Button('Blogs')
    // 样式属性...
    .onClick(() => {
        router.pushUrl({url:"view/BlogViewList"})
    })

博客列表导航使用router.pushUrl方法,将用户带到博客列表页面。这种方式会将当前页面保留在导航栈中,用户可以通过返回按钮回到案例页面。

五、与项目其他页面的关系

MainPage作为三级页面,在整个应用的导航结构中处于以下位置:

Index (主页)
├── BasicCaseList (萌新小白)
│   └── MainPage (案例详情) ← 当前分析的页面
├── AdvancedCaseList (登堂入室)
│   └── MainPage (案例详情)
├── HybridCaseList (进阶高手)
│   └── MainPage (案例详情)
└── BlogViewList (博客列表)
    └── BlogDetail (博客详情)

MainPage可以通过返回按钮导航回对应的二级页面(BasicCaseList、AdvancedCaseList或HybridCaseList),也可以通过Blogs按钮直接跳转到BlogViewList页面。


七、总结

好了 ,手把手的项目了解就到这里,其实还有个四级页面 用于展示与案例项管理的文章讲解内容, 以及五级页面,对象的文章详情, 由于布局过于简单,因此不在讲解了, 后面就进入真正的案例讲解喽~~~

相关文章
|
9月前
|
监控 JavaScript 编译器
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
本文详解如何利用 hiAppEvent 监控并获取 sourcemap、debug so 等核心产物,剖析了 hstack 工具如何将混淆的 Native 与 ArkTS 堆栈还原为源码,助力开发者掌握异常分析方法,提升应用稳定性。
1043 94
|
10月前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
402 1
|
10月前
|
存储 负载均衡 数据库
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
本文介绍基于华为AGC的端云一体化开发流程,涵盖项目创建、云函数开通、应用配置及DevEco集成。重点讲解云函数的编写、部署、调用与传参,并涉及环境变量设置、负载均衡、重试机制与熔断策略等高阶特性,助力开发者高效构建稳定云端服务。
875 1
鸿蒙 HarmonyOS NEXT端云一体化开发-云函数篇
|
10月前
|
存储 JSON 数据建模
鸿蒙 HarmonyOS NEXT端云一体化开发-云数据库篇
云数据库采用存储区、对象类型、对象三级结构,支持灵活的数据建模与权限管理,可通过AGC平台或本地项目初始化,实现数据的增删改查及端侧高效调用。
546 1
|
10月前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
651 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
10月前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段三
本文介绍了UI开发中的样式复用与组件构建技术,涵盖@Extend、@Styles和@Builder的使用方法,并通过Swiper轮播、Scroll滚动、Tabs导航等常用组件实现典型界面效果,结合生肖抽卡、小米轮播、回顶按钮等案例,展示实际应用技巧。
246 1
|
10月前
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二
本文介绍鸿蒙应用界面开发中的弹性布局(Flex)、绝对定位、层叠布局及ArkTS语法进阶,涵盖字符串拼接、类型转换、数组操作、条件与循环语句,并结合B站视频卡、支付宝首页等案例,深入讲解点击事件、状态管理与界面交互功能。
506 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二
|
10月前
|
传感器 监控 安全
HarmonyOS NEXT 5.0 的星闪(NearLink)开发应用案例
V哥分享HarmonyOS NEXT 5.0星闪开发实战,涵盖智能车钥匙无感解锁与工业传感器监控。低延迟、高可靠,代码完整,速来学习!
1172 0
|
11月前
|
移动开发 网络协议 小程序
鸿蒙NEXT即时通讯/IM系统RinbowTalk v2.4版发布,基于MobileIMSDK框架、ArkTS编写
RainbowTalk是一套基于开源即时通讯讯IM框架 MobileIMSDK 的产品级鸿蒙NEXT端IM系统。纯ArkTS编写、全新开发,没有套壳、也没走捷径,每一行代码都够“纯血”。与姊妹产品RainbowChat和RainbowChat-Web 技术同源,历经考验。
422 1
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。

热门文章

最新文章