HarmonyOS 鸿蒙Next 农物购app开发技术分享《六》-- 商品列表

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 农物购app开发技术分享《六》-- 商品列表

在上一节我们完善了首页新增了资讯中心的模块的相关内容,从首页可以通过标题进入到资讯列表,点击条目又可以跳转到资讯详情,这一节我们来实现在线商城的主要功能,商品列表展示功能。

首先我们看一下我们要实现的页面样式

可以看到商品列表是一行两个商品这样来进行展示的,一条数据是图片、商品名称、价格、销量等信息来组成。

要展示商品列表我们也要新建一个自定义组件来在index中引用

代码实现

import { router } from ‘@kit.ArkUI’

@Component

export struct ProductListPage {

  private imgList:ESObject[]=[

    {“img”:“网络图片” ,

      “title”:“tpe材质手机壳”,

      “volume”:“1027”,

      “price”:“7.9”},

    {“img”:“网络图片” ,

      “title”:“水果干组合”,

      “volume”:“323”,

      “price”:“39.9”},

    {“img”:“网络图片” ,

      “title”:“mate40”,

      “volume”:“9999”,

      “price”:“4499”},

    {“img”:“网络图片” ,

      “title”:“佳能相机”,

      “volume”:“890”,

      “price”:“8999”},

  ]

  build() {

    Column() {

      GridRow({ columns: 2 }){

        ForEach(this.imgList, (item: ESObject, index?:number) => {

          GridCol() {

            Column(){

              Image(item.img).width(‘100%’).height(120)

                .borderRadius(10)

              Text(item.title)

                .fontSize(18)

                .fontWeight(FontWeight.Bold)

                .margin({top:10})

              Row(){

                Text(item.price+“¥”)

                  .margin({top:5})

                  .fontSize(18)

                  .fontColor(Color.Red)

                Blank()

                Text(item.volume)

                  .margin({top:5})

                  .fontSize(14)

              }

              .width(‘100%’)

            }

            .padding(10)

            .alignItems(HorizontalAlign.Start)

            .onClick(()=>{

              router.pushUrl({url:""})

            })

          }.backgroundColor(item)

        })

      }

    }

    .height(‘100%’)

    .width(‘100%’)

  }

}

然后我们回到index 中

TabContent() {

  Column(){

    BannerPage()

    TopListPage()

    NewPage()

    ProductListPage()

  }

  .height(‘100%’)

}

.tabBar(this.tabBuilder(“首页”,0,$r(‘app.media.index1_check’),$r(‘app.media.index1_not_check’)))

把我们的列表页组件引入

执行代码后首页展示如下

可以看到我们的首页内容更加丰富了,这一节就到这里了


更多关于HarmonyOS 鸿蒙Next 农物购app开发技术分享《六》-- 商品列表的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 农物购app开发技术分享《六》-- 商品列表的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next环境下开发农物购app的商品列表功能时,可以利用ArkUI框架进行界面构建和数据展示。ArkUI是HarmonyOS的声明式UI开发框架,支持用JS或TS进行开发,便于快速构建高质量的UI界面。

数据绑定与渲染

  • 使用@State@Link注解来绑定商品列表数据,确保数据变化时界面能实时更新。
  • <list>组件中,通过for循环遍历商品列表,生成每一项商品的展示元素。
  • 为每一项商品设置点击事件监听,便于实现商品的详情查看、加入购物车等功能。

性能优化

  • 若商品列表数据量较大,可以使用分页加载或虚拟列表技术来减少内存占用和提升渲染性能。
  • 利用ArkUI的懒加载特性,对图片等资源进行优化,避免一次性加载过多数据导致的性能问题。

样式与布局

  • 使用CSS样式或ArkUI的样式系统来定义商品列表的样式,包括字体、颜色、间距等。
  • 通过Flexbox或Grid布局来管理商品列表的排列方式,确保在不同屏幕尺寸和分辨率下都能有良好的显示效果。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部