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

导航栏还是老样式,介绍过很多次了,今天不再赘述。这个页面的内容主要还是介绍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 : String
func 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语言##仓颉##购物#

鸿蒙Next仓颉语言开发实战教程:设置页面的更多相关文章

  1. Swift游戏开发实战教程(霸内部信息大学)

    Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程具体解说记忆配对 ...

  2. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发2-Model层建立

    上篇(asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作)文章讲解了开发过程中的准备工作,主要创建了项目数据库及项目,本文主要讲解项目M层的实现,M层这里 ...

  3. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建

    上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模 ...

  4. 微信小程序-云开发实战教程

    微信小程序-云开发实战教程 云函数,云存储,云数据库,云调用 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/gettin ...

  5. Python开发实战教程(8)-向网页提交获取数据

    来这里找志同道合的小伙伴!↑↑↑ Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知 ...

  6. React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  7. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发

    进行本文之前需要在数据库用户表里面增加一条用户数据,直接手动添加即可,未安全考虑密码一定要使用Md5加密后的,这里提供666666的Md5密文为(c831b04de153469d),本文完成登录模块的 ...

  8. React Native移动开发实战-3-实现页面间的数据传递

    React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...

  9. gin框架博客实战教程2019web页面开发go语言实战博客开发

    视频教程: https://www.bilibili.com/video/av73698322?t=2400&p=5 资料下载地址(含数据库和main.go和controller里的代码) 注 ...

  10. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作

    /****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...

随机推荐

  1. oracle中查看锁表,ORACLE中查看当前系统中锁表情况

    1.ORACLE中查看当前系统中锁表情况 select * from v$locked_object 2.可以通过查询v$locked_object拿到sid和objectid,然后用sid和v$se ...

  2. Delphi 数据库连接查询分析器

    为了方便自己查询数据库信息,花了小时间写了小工具,添加SQL语法高亮显示功能

  3. 《视觉SLAM十四讲》第13讲 设计SLAM系统 回环检测线程的实现

    <视觉SLAM十四讲>第13讲 设计SLAM系统 回环检测线程的实现 这个学期看完了高翔老师的<视觉SLAM十四讲>,学到了很多,首先是对计算机视觉的基本知识有了一个更加全面系 ...

  4. [每日算法 - 华为机试] leetcode20 :有效的括号 「栈」

    入口 力扣https://leetcode.cn/problems/valid-parentheses/submissions/ 题目描述 给定一个只包括 '(',')','{','}','[','] ...

  5. 异常--java进阶day08

    1.异常 java中,所有的异常都是类 2.异常的体系结构 3.编译时异常与运行时异常 1.编译时异常 语法完全正确,但是代码就是会报错,如下图 上图中,写的是时间格式化类的使用,parse方法将给的 ...

  6. 【Ubuntu】Ubuntu 24.04 配置镜像源

    [Ubuntu]Ubuntu 24.04 配置镜像源 零.起因 最近在虚拟机中安装了个ubuntu-24.04-desktop-amd64,默认是国外的软件源,很慢,故替换到国内. 壹.替换 源地址( ...

  7. C# using 别名

    场景重现 当using的多个库出现类名重复的情况时... 解决办法 使用类的完全限定名称,例如: // 不需要using,避免using名称重复导致的异常 // 使用类的完全限定名称,俗称全名. Sy ...

  8. datasnap的监督功能【1】-服务端获取客户端连接信息

    在服务端获取连接的客户端相关info: TDBXClientInfo = recoed IpAddress : String; ClientPort : String; Protocol : Stri ...

  9. 使用 AutoGen Studio 打造你的私有团队

    AI Agent 无疑是今年最火爆的概念,从科技巨头的战略布局到创业公司的创新产品,AI 智能体正在重塑我们与机器交互的方式.无论是自动化任务.个性化服务,还是复杂问题的协同解决,AI Agent 都 ...

  10. cpp简单总结

    1.简述智能指针的特点,简述new和malloc的区别. shared_ptr,显现共享式特点,多个同类型的shared指针可以共享一个对象,当持有者的计数归0,shared_ptr指向的指针就会被释 ...