鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

简介: 本文分享了仓颉语言商城应用的个人中心页面实现过程,包含导航栏、个人资料、VIP横条及我的订单等模块的布局与代码解析,帮助开发者更好地理解页面结构与样式设置。

又到了高考的日子,幽蓝君在这里祝各位考生朋友冷静答题,超常发挥。

今天要分享的内容是仓颉语言商城应用的个人中心页面,先看效果图:

image.png

下面介绍下这个页面的实现过程。

我们可以先分析下整个页面的布局结构。可以看出它是纵向的布局,整个页面由导航栏、个人资料、vip横条和我的订单几部分构成。

导航栏我们遇到过很多次了,需要注意的地方就是让标题居中,返回图标靠左。最简单的办法让它俩不在一个层级上,互不影响,所以我们使用层叠布局实现:

Stack {
     Text('个人中心')
    .fontSize(16)
    .fontWeight(FontWeight.Bold)
    .fontColor(Color.BLACK)
    Row{
         Image(@r(app.media.back))
    .width(27)
    .height(27)
     .onClick({evet => Router.back()})
    }.width(100.percent).justifyContent(FlexAlign.Start).padding(left:5)
}
.width(100.percent)
.height(60)
.backgroundColor(Color.WHITE)

头像和昵称部分也比较简单,一个Row容器就能搞定:

Row(8){
    Image(@r(app.media.chaofu))
    .width(60.vp)
    .height(60)
    .borderRadius(30)
    Text('幽蓝计划')
    .fontSize(16)
    .fontColor(Color.BLACK)
    .fontWeight(FontWeight.Bold)
 }
 .width(100.percent)
 .height(60.vp)

到了开通会员部分,有些需要注意的地方。首先是它只有上面部分是圆角,下面两个是没有圆角的,仓颉语言中borderRadius属性提供了单独设置圆角的方法,不过Length类型的参数不知道大家有没有见到过:

.borderRadius(topLeft: Length(12, unitType: LengthType.vp), topRight: Length(12, unitType: LengthType.vp))

最后是我的订单部分,又可以把它分成标题和订单类型内容两部分,这两部分都使用SpaceBetween布局,局部分代码就不再一一列举了,直接附上整个页面的完整代码:

package ohos_app_cangjie_entry.page
import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*
import ohos.router.Router
import cj_res_entry.app
import std.collection.ArrayList
@Entry
@Component
public class mine  {
    func build() {
        Column{
            Stack {
                 Text('个人中心')
                .fontSize(16)
                .fontWeight(FontWeight.Bold)
                .fontColor(Color.BLACK)
                Row{
                     Image(@r(app.media.back))
                .width(27)
                .height(27)
                 .onClick({evet => Router.back()})
                }.width(100.percent).justifyContent(FlexAlign.Start).padding(left:5)
            }
            .width(100.percent)
            .height(60)
            .backgroundColor(Color.WHITE)

            Column{
                Row(8){
                    Image(@r(app.media.chaofu))
                    .width(60.vp)
                    .height(60)
                    .borderRadius(30)
                    Text('幽蓝计划')
                    .fontSize(16)
                    .fontColor(Color.BLACK)
                    .fontWeight(FontWeight.Bold)
                 }
                 .width(100.percent)
                 .height(60.vp)
                Row{
                    Row{
                        Text('开通会员')
                        .fontColor(Color.WHITE)
                        .fontSize(14)
                        Image(@r(app.media.right))
                        .width(13)
                        .height(13)
                    }
                    .padding(left:12,right:12)
                    .width(100.percent)
                    .height(43)
                    .backgroundColor(Color(41, 41, 41, alpha:1.0))
                    .alignItems(VerticalAlign.Center)
                    .justifyContent(FlexAlign.SpaceBetween)
                    .borderRadius(topLeft: Length(12, unitType: LengthType.vp), topRight: Length(12, unitType: LengthType.vp))
                }
                .width(100.percent)
                .padding(left:15,right:15)
                .margin(top:40)
                Column{
                    Row{
                        Text('我的订单')
                        .fontSize(14)
                        .fontColor(Color.BLACK)
                        Row(3){
                            Text('全部')
                            .fontSize(0x666666)
                            .fontSize(12)
                            Image(@r(app.media.icon_arrow_right))
                            .width(12)
                            .height(13)
                            .objectFit(ImageFit.Contain)
                        }
                        .alignItems(VerticalAlign.Center)
                    }
                    .justifyContent(FlexAlign.SpaceBetween)
                    .alignItems(VerticalAlign.Center)
                    .width(100.percent)
                    Row{
                        Column(5){
                            Image(@r(app.media.zhifu))
                            .width(34)
                            .height(34)
                            Text('待支付')
                            .fontSize(12)
                            .fontColor(Color.BLACK)
                        }
                        Column(5){
                            Image(@r(app.media.shouhuo))
                            .width(34)
                            .height(34)
                            Text('待收货')
                            .fontSize(12)
                            .fontColor(Color.BLACK)
                        }
                        Column(5){
                            Image(@r(app.media.wancheng))
                            .width(34)
                            .height(34)
                            Text('已完成')
                            .fontSize(12)
                            .fontColor(Color.BLACK)
                        }
                        Column(5){
                            Image(@r(app.media.shouhou))
                            .width(34)
                            .height(34)
                            Text('售后')
                            .fontSize(12)
                            .fontColor(Color.BLACK)
                        }
                    }
                    .width(100.percent)
                    .justifyContent(FlexAlign.SpaceBetween)
                }
                .width(100.percent)
                .height(120)
                .borderRadius(12)
                .backgroundColor(0xF5F5F5)
                .padding(left:10,right:10,top:15,bottom:15)
                .justifyContent(FlexAlign.SpaceBetween)
            }
            .width(100.percent)
            .padding(left:12,right:12)
        }
        .width(100.percent)
        .height(100.percent)
    }
}

感谢阅读,祝大家周末愉快。##HarmonyOS语言##仓颉##购物#

相关文章
|
2月前
|
监控 JavaScript 编译器
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
本文详解如何利用 hiAppEvent 监控并获取 sourcemap、debug so 等核心产物,剖析了 hstack 工具如何将混淆的 Native 与 ArkTS 堆栈还原为源码,助力开发者掌握异常分析方法,提升应用稳定性。
432 40
|
3月前
|
开发者 容器
鸿蒙应用开发从入门到实战(十四):ArkUI组件Column&Row&线性布局
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Column和Row组件的使用以及线性布局的方法。
310 12
|
3月前
|
API 数据处理
鸿蒙应用开发从入门到实战(十三):ArkUI组件Slider&Progress
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解滑块Slider和进度条Progress组件的使用。
192 1
|
3月前
|
JavaScript 开发者 索引
鸿蒙应用开发从入门到实战(九):ArkTS渲染控制
ArkTS拓展了TypeScript,可以结合ArkUI进行渲染控制,是的界面设计具有可编程性。本文简要描述鸿蒙应用开发中的条件渲染和循环渲染。
186 5
|
2月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
304 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
270 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
631 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
3月前
|
数据安全/隐私保护 开发者
鸿蒙应用开发从入门到实战(十一):ArkUI组件Text&TextInput
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解文本组件Text和TextInput的使用。
304 3
|
2月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
165 0
|
3月前
|
存储 缓存 5G
鸿蒙 HarmonyOS NEXT端云一体化开发-云存储篇
本文介绍用户登录后获取昵称、头像的方法,包括通过云端API和AppStorage两种方式,并实现上传头像至云存储及更新用户信息。同时解决图片缓存问题,添加上传进度提示,支持自动登录判断,提升用户体验。
186 1

热门文章

最新文章