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

鸿蒙Next仓颉语言开发实战教程:设置页面

仓颉语言商城应用的页面开发教程接近尾声了,今天要分享的是设置页面:

导航栏还是老样式,介绍过很多次了,今天不再赘述。这个页面的内容主要还是介绍List容器的使用。

可以看出列表内容分为三组,所以我们要用到ListItemGroup,不过第一组是没有标题的,所以可以直接使用ListItem,布局很简单,具体代码如下:

ListItem{Row(8){Image(@r(app.media.chaofu)).width(60.vp).height(60).borderRadius(30)Column(20){Text('幽蓝计划').fontSize(16).fontColor(Color.BLACK).fontWeight(FontWeight.Bold)Text('账号名: youlanjihua').fontSize(13).fontColor(Color.GRAY)}.alignItems(HorizontalAlign.Start)}.backgroundColor(Color.WHITE).width(100.percent).height(90.vp).borderRadius(10).onClick({evet =>})
}

下面的两组内容都是有标题的,实现方案我建议使用List容器的head,方法是先定义header组件,然后在ListItemGroup中引用,具体代码如下:

@Builder func itemHead(text:String) {Row{Text(text).fontColor(Color.GRAY).fontSize(13)}.width(100.percent).height(35).alignItems(VerticalAlign.Center).padding(top:3,left:10)
}ListItemGroup(ListItemGroupParams(header:{=>bind(this.itemHead,this)('账号设置')})){//列表内容
}

剩下的内容就是下面两组的内容部分了,可以看出它们几乎都是一样的,所以我们可以自定义组件来节省代码,再次介绍一下自定义组件的相关内容。首先创建新的文件,定义样式和需要的参数,以本文内容为例,具体代码是这样的:

@Component
public class setrow {@Prop var title:String@Prop var icon:CJResource@Prop var subTitle : Stringfunc build() {Row{Row{Image(icon).width(20).height(20)Text(title).fontSize(15).fontColor(0x4a4a4a).margin(left:8)}Row(8){if(subTitle.size > 0){Text(subTitle).fontColor(Color.GRAY).fontSize(12)}Image(@r(app.media.cjright)).width(20).height(20)}.alignItems(VerticalAlign.Center)}.width(100.percent).height(50).justifyContent(FlexAlign.SpaceBetween).backgroundColor(Color.WHITE).padding(left:10,right:10)}
}

使用组件:

ListItem{setrow( title: '账户与安全', icon: @r(app.media.cjlogo2), subTitle: '账户保障可升级')
}

最后,分组中的内容是有分割线的,List和ListItemGroup都提供了分割线属性divider,这里我们只在ListItemGroup就可以,要注意分割线的宽度最好不要设置小于1的值,不然可能会有部分不显示的情况:

.divider(strokeWidth: 1.vp, color: Color(216, 216, 216), startMargin: 10.vp, endMargin: 0.vp)

今天的内容就是这样,感谢阅读。##HarmonyOS语言##仓颉##购物#

http://www.xdnf.cn/news/14359.html

相关文章:

  • 实验绘图参考-0615版(自用)
  • 力扣第 454 场周赛
  • 「AI产业」| 《德勤:AI案例精选》
  • NJet Portal 应用门户管理介绍
  • Django构建简易视频编辑管理系统
  • Hadoop HDFS存储机制与块大小选择权衡
  • 如何面试网络信息安全岗位答疑(一)NISP管理中心
  • 2.1 Python解释器工作原理
  • [深度学习]目标检测基础
  • leetcode 1432. 改变一个整数能得到的最大差值 中等
  • MQTT:构建高效物联网通信的轻量级协议
  • Python实战项目 贪吃蛇 源码分享 毕业设计
  • 自动驾驶系统研发系列—激光雷达干扰实战:自动驾驶安全的隐形陷阱
  • (LeetCode 动态规划(基础版)) 518. 零钱兑换 II (动态规划dp)
  • Python训练营打卡 Day54
  • ONLYOFFICE 协作空间 企业版使用秘籍-5.企业电子文件如何管理?便于查找、访问和协作,轻松提升效率
  • 操作系统八股文
  • Python密码加密与校验详解
  • python profiling
  • (十六)GRU 与 LSTM 的门控奥秘:长期依赖捕捉中的遗忘 - 更新机制对比
  • ShardingSphere 全面学习路径
  • 编译链接实战(31)再论静态库的本质是啥
  • LeetCode 2300.咒语和药水的成功对数
  • leetcode复盘(1)
  • 【项目实训】【项目博客#08】HarmonySmartCodingSystem系统前后端知识图谱与可视化实现(5.12-6.1)
  • 深入理解Redis五种基本数据类型
  • (LeetCode 动态规划(基础版)) 279. 完全平方数 (动态规划dp)
  • java复习 14
  • 深度学习入门知识
  • DP刷题练习(二)