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

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

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

首页的内容包括导航栏、轮播图、商品分类和商品列表,我们下面逐一介绍。

导航栏

仓颉语言中是没有导航栏组件的,我们需要自己去开发。此处的导航栏也比较简单,只有一个搜索框,仓颉中的常见组件我们已经在之前的文章中做了讲解。所以这里就直接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)

商品列表

商品列表和分类几乎一样,只不过由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() {//bannerListItem {}    //分类ListItem {}//商品ListItem {}
}.layoutWeight(1)

源码已经上传到gitee,大家需要的话可以下载:

https://gitee.com/the-blue-plan/cjshop

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

相关文章:

  • 高效缓存设计的哲学
  • 2025年- H42-Lc150 --146. LRU缓存(哈希表,双链表)需二刷--Java版
  • 网络图片的缓存和压缩
  • Rust 学习笔记:关于生命周期的练习题
  • 深度解析:Spark、Hive 与 Presto 的融合应用之道
  • uni-app学习笔记八-vue3条件渲染
  • 黑马+点评常见问题
  • work-platform阅读
  • OceanBase 开发者大会,拥抱 Data*AI 战略,构建 AI 数据底座
  • git checkout HEAD
  • 计及可再生能源不确定性的经济优化调度方法
  • Centos8安装 python3并保留系统的python2
  • I.MX6U Mini开发板通过GPIO口测试光敏传感器
  • 使用 OpenCV 实现哈哈镜效果
  • GPU P-State 模式说明
  • 红蓝对抗中的网络安全设备操作手册
  • 提问的艺术
  • Linux内存分页管理详解
  • SAR ADC 是选择先置位再比较,还是先比较再置位
  • 禁止window安全中心乱删文件
  • 建设网站前台费用/保定seo建站
  • 做淫秽网站有事情吗/深圳市前十的互联网推广公司
  • 上海网站制作网站建设/一键生成个人网站
  • 视觉品牌网站建设/企业专业搜索引擎优化
  • 做网站开发的想接私活/网站功能
  • 沈阳网站建设培训/浏阳廖主任打人案