HarmonyOS NEXT仓颉开发语言实战案例:外卖App
各位周末好,今天为大家来仓颉语言外卖App的实战分享。
我们可以先分析一下页面的布局结构,它是由导航栏和List容器组成的。幽蓝君目前依然没有找到仓颉语言导航栏的系统组件,还是要自定义,这个导航栏有三部分内容,可以使用两端对齐,要注意的是,如果需要中间部分在页面中间需要两端的内容宽度相同。导航栏和页面的布局结构代码如下:
Column{
Row{
Text('幽蓝外卖')
.fontColor(Color.BLACK)
.fontSize(17)
Row(6){
Image(@r(app.media.wm_m1))
.width(16)
.height(16)
Text('黄埔江岸')
.fontColor(0x1EC28A)
.fontSize(13)
}
Row{
Image(@r(app.media.wm_m2))
.width(21)
.height(21)
}
.width(65)
.justifyContent(FlexAlign.End)
}
.padding(left:12,right:12)
.width(100.percent)
.height(60)
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.SpaceBetween)
List{
}
.width(100.percent)
.layoutWeight(1)
.padding(left:12,right:12)
}
.width(100.percent)
.height(100.percent)
.backgroundColor(Color(247, 247, 247, alpha: 1.0))
接下来是搜索框,仓颉提供了搜索框组件,只需要简单设置就能达到本案例的效果:
ListItem{
Search(value: "", placeholder: "吃点什么")
.width(100.percent)
.height(38)
.backgroundColor(0xDDDDDD)
.placeholderColor(0x000000)
.borderRadius(19)
}
接下来是看看品类和发现好菜两个模块,它们有相同样式的标题,所以我们使用ListItemGroup的header来实现:
@Builder func itemHead(text:String) {
Row{
Text(text)
.fontColor(Color.BLACK)
.fontSize(13)
}
.width(100.percent)
.height(35)
.alignItems(VerticalAlign.Center)
.padding(top:3,left:10)
}
ListItemGroup(ListItemGroupParams(header:{=>bind(this.itemHead,this)('看看品类')})){
}
再来看看看品类部分,它的内容有两个可以水平滚动的列表,这里要使用Scroll,我们以菜品列表为例实现一个简单的滚动列表:
Scroll{
Row(14){
ForEach(ArrayList<Int64>([1,1,1,1]), itemGeneratorFunc: {num:Int64,index:Int64 =>
Column{
Image(@r(app.media.wm_mlt))
.width(168)
.height(168)
Column(4){
Text('幽蓝麻辣烫')
.fontSize(14)
.fontColor(Color.BLACK)
Text('月售 1006')
.fontSize(13)
.fontColor(Color.GRAY)
}
.width(100.percent)
.alignItems(HorizontalAlign.Start)
.padding(left:10)
.margin(bottom:10)
Row{
Text('¥ 18.88')
.fontColor(Color.RED)
.fontSize(14)
Image(@r(app.media.wm_qq))
.width(16)
.height(16)
}
.padding(left:10,right:10)
.width(100.percent)
.justifyContent(FlexAlign.SpaceBetween)
.margin(bottom:10)
}
.height(260)
.width(162)
.backgroundColor(Color.WHITE)
.justifyContent(FlexAlign.SpaceBetween)
})
}
.height(260)
}
.scrollable(ScrollDirection.Horizontal)
.scrollBar(BarState.Off)
使用Scroll组件的时候要注意设置滚动方向,不然可能会发生列表不滚动的问题。
以上就是关于外卖App的内容分享。##HarmonyOS语言##仓颉##生活服务#
HarmonyOS NEXT仓颉开发语言实战案例:外卖App的更多相关文章
- 谷歌推出全新Android开发语言Sky:让App更流畅
土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...
- Swift语言实战晋级
Swift语言实战晋级基本信息作者: 老镇 丛书名: 爱上Swift出版社:人民邮电出版社ISBN:9787115378804上架时间:2014-12-26出版日期:2015 年1月开本:16开页码: ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- Python开发GUI实战:图片转换素描画工具!
奋斗没有终点 好好学习72变,因为将来 没有人能替你阻挡81难 . 生如蝼蚁,当有鸿鹄之志: 命如纸薄,应有不屈之心 . 今天被这句话触动了,所以开篇分享给大家.鸡汤有毒,但有时大家却靠它激励自己 ...
- Salesforce学习之路-developer篇(五)一文读懂Aura原理及实战案例分析
1. 什么是Lightning Component框架? Lightning Component框架是一个UI框架,用于为移动和台式设备开发Web应用程序.这是一个单页面Web应用框架,用于为Ligh ...
- 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
摘要:基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测.车距计算等基本功能,作为辅助驾驶入门级 ...
- Swift语言实战晋级-第9章 游戏实战-跑酷熊猫-1
学习目标 一.进一步学习Swift的游戏制作 二.掌握SKNode,SKSpriteNode的运用 三.了解SpriteKit的物理系统 四.掌握动作(SKAction)的运用 在这一章,我们要通过制 ...
- 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)
用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...
- C# Xamarin移动开发项目实战篇
一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发 ...
- 《数据挖掘:R语言实战》
<数据挖掘:R语言实战> 基本信息 作者: 黄文 王正林 丛书名: 大数据时代的R语言 出版社:电子工业出版社 ISBN:9787121231223 上架时间:2014-6-6 出版 ...
随机推荐
- Golang 获取类型
可以通过reflect包的TypeOf()取得某一变量或值的类型.
- Quartz.NET - 教程 1: 使用 Quartz
译者注: 目录在这 Quartz.NET 3.x 教程 原文在这 Lesson 1: Using Quartz 在你使用调度器之前, 你需要先实例化(能猜到是谁么?). 要实例化, 请使用 ISche ...
- 《机器人SLAM导航核心技术与实战》第1季:第9章_视觉SLAM系统
<机器人SLAM导航核心技术与实战>第1季:第9章_视觉SLAM系统 视频讲解 [第1季]9.第9章_视觉SLAM系统-视频讲解 [第1季]9.1.第9章_视觉SLAM系统_ORB-SLA ...
- WPF初学者的一点迷思
1.WPF只是前端!前端!前端!看了两天的视频,跟着敲了三个项目,自己写了一个小demo之后,从gitee上下了一个别的的框架之后才整明白,WPF只是前端.或者说只是把原本winfrom的界面+事件+ ...
- 15.4K Star!Vercel官方出品,零基础构建企业级AI聊天机器人
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "基于Next.js 14和AI SDK打造的Chat SDK,让开发者快速构建支 ...
- 操作系统综合题之“采用实时调度,可调度的限制条件和可调度的最大X值是是多少ms的CPU时间”
一.问题:单处理器情况下,m个周期性实时进程,若进程i处理时间为Ci,周期时间为Pi < (1 ≤ i ≤ m) 1.要使系统可调度的限制条件什么? 2.设置一个实时系统使用了4个周期事件,其周 ...
- MySql技术之"虚拟表增加索引"
一.虚拟表增加索引 创建虚拟表,并且增加SKU索引:INDEX idx_sku (sku) CREATE TEMPORARY TABLE t_sku_analy_temp ( sku VARCHAR( ...
- k8sd之pod生命周期
pod生命周期: 状态:pending 挂起 没有节点满足条件 running 运行 Failed sucess unkonwn pod生命周期中的重要行为: 初始化容器 容器探测:liveness ...
- TVM:Relay算子实现流程
转载:https://blog.csdn.net/zx_ros/article/details/123526147 自定义算子的步骤: 1.定义算子属性节点 2.编写算子的输入输出类型推导关系函数 3 ...
- 网络编程:CMD命令
要求: 写一个客户端程序和服务器程序,客户端程序连接上服务器之后,通过敲命令和服务器进行交互,支持的交互命令包括: pwd:显示服务器应用程序启动时的当前路径. cd:改变服务器应用程序的当前路径. ...