初学鸿蒙-ArkUI组件-COlumn和Row-循环控制-List

class Item {
  name:string
  image:ResourceStr
  price:number
  discount:number

  constructor(name:string,image:ResourceStr,price:number,discount:number=0) {
    this.name =name
    this.image =image
    this.price =price
    this.discount =discount
  }
}
@Entry
@Component
struct ItemPage {
  // @State imageWidth: number = 30;
  private items:Array<Item> = [
    new Item('华为1',$r('app.media.app_icon'),6999,500),
    new Item('华为2',$r('app.media.app_icon'),6999),
    new Item('华为3',$r('app.media.app_icon'),6999),
    new Item('华为4',$r('app.media.app_icon'),6999),
    new Item('华为5',$r('app.media.app_icon'),6999),
    new Item('华为6',$r('app.media.app_icon'),6999),
    new Item('华为7',$r('app.media.app_icon'),6999),
  ]
  build() {
    Column({space:8}){
      Row(){
        Text('商品列表')
          .fontSize(30)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
      .height(30)
      .margin({bottom:20})
      List({space:8}){
        ForEach(
          this.items,
          (item:Item) => {
            ListItem(){
              Row({space:10}){
                Image(item.image)
                  .width(100)
                Column({space:4}){
                  if (item.discount) {
                    Text(item.name)
                      .fontSize(20)
                      .fontWeight(FontWeight.Bold)
                    Text('原价:¥'+item.price)
                      .fontColor('#CCC')
                      .fontSize(14)
                      .decoration({type:TextDecorationType.LineThrough})
                    Text('折扣价:¥'+(item.price-item.discount))
                      .fontColor('#F36')
                      .fontSize(18)
                    Text('补贴:¥'+item.discount)
                      .fontColor('#F36')
                      .fontSize(18)
                  }else {
                    Text(item.name)
                      .fontSize(20)
                      .fontWeight(FontWeight.Bold)
                    Text('¥'+item.price)
                      .fontColor('#F36')
                      .fontSize(18)
                  }
                }
                .height('100%')
                .alignItems(HorizontalAlign.Start)
              }
              .width('100%')
              .backgroundColor('#fff')
              .height(120)
              .padding(10)
            }
          }
        )
        ListItem(){
          Row(){

          }
        }
      }
      .width('100%')
      .layoutWeight(1)
      .listDirection(Axis.Vertical)
    }
    .width('100%')
    .height('100%')
    .backgroundColor('#EFEFEF')
    .padding(20)
  }
}
效果图

  • 14
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jshahahaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值