鸿蒙仓颉开发语言实战教程:实现商城应用首页

简介: 本文介绍了使用仓颉语言开发商城首页页面的实战过程,包含导航栏、轮播图、商品分类及列表的实现。通过Row、Swiper、Grid等组件构建界面,并结合List实现滚动布局,完成完整的商城首页设计。

经过了几天的入门教程,我们终于进入到了仓颉开发语言的实战环节,今天分享的内容是实现商城应用的首页页面,效果图如下:

首页的内容包括导航栏、轮播图、商品分类和商品列表,我们下面逐一介绍。
下面再为大家分享一个关于布局的基础知识,所有的布局方式无非分为三种:横向布局、竖向布局和层叠布局,其他的布局方式均有这三种方式衍生而来,比如弹性布局、网格布局、列表布局等等。
所以我们也可以对今天的页面先做一个简单的分析,它首先是一个从上至下的竖向布局,中间嵌套了横向布局方式,也可以说是网格布局方式。再仔细一点分析,它是由导航栏和列表组件构成,在列表组件中又有不同的页面结构。
每一次开发项目之前都进行类似的分析,开发就会变得简单。做完分析,我们就可以着手写代码了。

导航栏
仓颉语言中是没有导航栏组件的,我们需要自己去开发。此处的导航栏也比较简单,只有一个搜索框,仓颉中的常见组件我们已经在之前的文章中做了讲解。所以这里就直接Row容器下添加Search组件:
Row {
Search(placeholder: "搜索", controller: this.searchController)
.height(38)
}.width(100.percent).height(60).padding(right: 12, left: 12)

轮播图
仓颉是有轮播图组件的,用法也比较简单:
Swiper{
Image(@r(app.media.banner1)).width(100.percent).height(100.percent)
Image(@r(app.media.banner2)).width(100.percent).height(100.percent)
Image(@r(app.media.banner3)).width(100.percent).height(100.percent)
}.width(100.percent).height(160).duration(1500).autoPlay(true)

商品分类
这里我们会遇到仓颉的第一个复杂容器Grid,作用和ArkTs中的Grid一样:
Grid {
ForEach(
goodsTypeList,
itemGeneratorFunc: {
item: TypeItem, index: Int64 => GridItem {
Column(){
Image(item.getImage()).width(40).height(40).margin(bottom: 4)
Text(item.getTitle()).fontSize(13).textAlign(TextAlign.Center).fontWeight(FontWeight.W400).margin(top:5)
}
}
}
)
}.columnsTemplate('1fr 1fr 1fr 1fr').rowsTemplate('1fr 1fr')
.width(100.percent).height(150).backgroundColor(0xFFFFFF)

image.png
商品列表
商品列表和分类几乎一样,只不过由4列改为2列:
Grid {
ForEach(
goodsList,
itemGeneratorFunc: {
item: GoodsItem, index: Int64 => GridItem {
Column(){
Image(item.getImage()).width(100.percent).height(200).margin(bottom: 4)
Text(item.getTitle()).fontSize(14).textAlign(TextAlign.Start).fontWeight(FontWeight.W400)
Text(item.getPrice()).fontSize(12).textAlign(TextAlign.Center).fontWeight(FontWeight.W400).fontColor(Color.RED)
}
.alignItems(HorizontalAlign.Start)
}
}
)
}.columnsTemplate('1fr 1fr').columnsGap(10).rowsGap(10)
.width(100.percent).backgroundColor(0xFFFFFF).padding( right: 10, left: 10)
最后要注意,除导航栏外,其他组件是需要可以滚动的,所以需要把它们放到List组件中,注意List的属性设置,这里使用layoutWeight来自动分配空间:
List() {
//banner
ListItem {}
//分类
ListItem {}
//商品
ListItem {}
}.layoutWeight(1)

##HarmonyOS语言##仓颉##购物

相关文章
|
2月前
|
监控 JavaScript 编译器
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
本文详解如何利用 hiAppEvent 监控并获取 sourcemap、debug so 等核心产物,剖析了 hstack 工具如何将混淆的 Native 与 ArkTS 堆栈还原为源码,助力开发者掌握异常分析方法,提升应用稳定性。
432 40
|
3月前
|
开发者 容器
鸿蒙应用开发从入门到实战(十四):ArkUI组件Column&Row&线性布局
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Column和Row组件的使用以及线性布局的方法。
310 12
|
2月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
304 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
270 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
631 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
165 0
|
3月前
鸿蒙应用开发从入门到实战(十六):线性布局案例
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文通过简单案例演示如何使用Column和Row组件实现线性布局。
175 1
|
3月前
|
传感器 监控 安全
HarmonyOS NEXT 5.0 的星闪(NearLink)开发应用案例
V哥分享HarmonyOS NEXT 5.0星闪开发实战,涵盖智能车钥匙无感解锁与工业传感器监控。低延迟、高可靠,代码完整,速来学习!
556 0
|
6月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
5月前
|
安全 JavaScript API
鸿蒙开发核心要素
鸿蒙开发核心要素

热门文章

最新文章