鸿蒙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 : 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仓颉语言开发实战教程:设置页面的更多相关文章
- Swift游戏开发实战教程(霸内部信息大学)
Swift游戏开发实战教程(大学霸内部资料) 试读下载地址:http://pan.baidu.com/s/1sj7DvQH 介绍:本教程是国内第一本Swift游戏开发专向资料. 本教程具体解说记忆配对 ...
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发2-Model层建立
上篇(asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作)文章讲解了开发过程中的准备工作,主要创建了项目数据库及项目,本文主要讲解项目M层的实现,M层这里 ...
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建
上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模 ...
- 微信小程序-云开发实战教程
微信小程序-云开发实战教程 云函数,云存储,云数据库,云调用 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/gettin ...
- Python开发实战教程(8)-向网页提交获取数据
来这里找志同道合的小伙伴!↑↑↑ Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知 ...
- React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块
尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发
进行本文之前需要在数据库用户表里面增加一条用户数据,直接手动添加即可,未安全考虑密码一定要使用Md5加密后的,这里提供666666的Md5密文为(c831b04de153469d),本文完成登录模块的 ...
- React Native移动开发实战-3-实现页面间的数据传递
React Native使用props来实现页面间数据传递和通信.在React Native中,有两种方式可以存储和传递数据:props(属性)以及state(状态),其中: props通常是在父组件 ...
- gin框架博客实战教程2019web页面开发go语言实战博客开发
视频教程: https://www.bilibili.com/video/av73698322?t=2400&p=5 资料下载地址(含数据库和main.go和controller里的代码) 注 ...
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作
/****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...
随机推荐
- IDEA激活后提示We could not validate your license xxxx解决办法
示例报错样式:每次激活单开都会不断弹出--很烦 解决思路是拦截jetbrains校验license的请求, 也就是找到校验license的接口屏蔽掉就行; > 别信网上的配置代理拦截 这样做 ...
- 数据结构-ArrayList-LinkedList--java进阶day09
1.数据结构 2.栈 详细流程:https://kdocs.cn/l/claZP6piLKDW?linkname=150996989 3.队 详细流程:https://kdocs.cn/l/claZP ...
- javascript for...in
在JS中我们最常见的循环语句是for循环语句,一个简单的for循环语句如下: for(var i = 0, n = 100; i < n; i++){ // to do somethings . ...
- EagleOS 9.5-基于AlmaLinux 9.5深度定制优化
EagleOS 9.5 说明文档 一.系统简介 EagleOS 9.5基于AlmaLinux 9.5进行深度定制优化. EagleOS 9.5根据AlmaLinux 9.5官方AlmaLinux-9. ...
- [开源] 分享一个自己开发的, 整合SMS/Mail/Telegram/微信四个平台的开源信息收发平台
起因于已有的聚合信息发送平台无法满足自己的需求. 不支持我需要的平台,或不支持接收信息后进行处理,或不放心把涉及隐私的消息通过第三方平台发送 利用SMS发送短信(上一篇文章中分享的开源项目) 利用SM ...
- 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
前言 .NET NativeAOT 想必不少开发者都已经很熟悉了,它可以将 .NET 程序集直接编译到原生的机器代码,从而可以脱离 VM 直接运行.简单的一句 dotnet publish -c Re ...
- Clion搭建C++开发环境
1.下载和安装MinGW 1)下载链接:http://www.mingw.org/ 2)选择安装目录,目录尽可能简单(如:D:\MinGW)且不要包含中文和空格 3)添加相关的包 所需的包如下:min ...
- 基于注解的 AOP 配置
第一步:在 spring 配置文件中开启 spring 对注解 AOP 的支持 <!-- 开启 spring 对注解 AOP 的支持 --> <aop:aspectj-autopro ...
- Spring Bean的声明方式
一.环境说明 项目结构 StudentService package com.cookie.service; /** * @author cxq * @version 1.0 * @date 2020 ...
- eolinker取数组数据合并成一个数据的方法
有时候遇到数据存在某一个数组中,类似下图结构,而用到这些数据的接口又需要一个数据集合,比如这样[14224, 14223]. 思路使用后置脚本,创建一个集合,把这两项数据取出来来,然后放到集合里,脚本 ...