当前位置: 首页 > news >正文

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

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

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

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

我们可以先分析下整个页面的布局结构。可以看出它是纵向的布局,整个页面由导航栏、个人资料、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语言##仓颉##购物#

http://www.lqws.cn/news/211771.html

相关文章:

  • 2025年06月07日Github流行趋势
  • xctf-weak_auth(弱口令)
  • B站Miachael_ee——蓝牙教程笔记
  • 接口不是json的内容能用Jsonpath获取吗,如果不能,我们选用什么方法处理呢?
  • 基于投影寻踪博弈论-云模型的综合评价
  • Shell 编程中的流程控制:从基础到实践
  • EPPLUS——CAD c#读写EXCEL的第三方库
  • 僵尸进程是什么?怎么回收?孤儿进程?
  • 【Elasticsearch】映射:Join 类型、Flattened 类型、多表关联设计
  • IDEA中的debug使用技巧
  • 代码注释类型
  • 0基础破解Typora,使用正版已激活Typora
  • 柯尼卡美能达Konica Minolta bizhub 205i打印机信息
  • 【20250607接单】Spark + Scala + IntelliJ 项目的开发环境配置从零教学
  • 红队实战全流程:从外部侦察到域控征服的内网渗透 >>> 检测一下小伙伴自己的道行哟
  • 【Java学习笔记】String类(重点)
  • 数论总结,(模版与题解)
  • [特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制
  • JAVA理论第四战-线程池
  • 动态可写的四层路由利器ngx_stream_keyval_module
  • WSF07N10 MOSFET 在铲皮机中的应用
  • 【西门子杯工业嵌入式-3-如何使用KEY】
  • 垃圾回收相关八股
  • Redis内存淘汰策略
  • 【Linux】LInux下第一个程序:进度条
  • 东芝Toshiba e-STUDIO2110AC打印机信息
  • 数据结构算法(C语言)
  • Ctrl-Crash 助力交通安全:可控生成逼真车祸视频,防患于未然
  • 基于 Transformer robert的情感分类任务实践总结之二——R-Drop
  • altium designer2024绘制stm32过程笔记x`