ArkUI-10-自定义构建函数

构建函数分两种:

1.全局构建函数

//全局自定义构建函数
@Builder
function ItemCard(item:Item) {
  Row({space:10}) {
    Image(item.image)
      .width(100)

    Column({space:4}){
      if(item.discount != 0){
        Text(item.name)
          .fontSize(20)
          .fontWeight(FontWeight.Bold)

        Text('原价:¥ '+ item.price)
          .fontColor('#CCC')
          .fontSize(18)
          .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)
  }.padding(10)
  .width('80%')
  .height(120)
  .backgroundColor('#ffffffff')
  .borderRadius(15)
}

2.内部构建函数

放到当前页面的build()方法后

@Builder
ItemCard(item:Item) {
  Row({space:10}) {
    Image(item.image)
      .width(100)

    Column({space:4}){
      if(item.discount != 0){
        Text(item.name)
          .fontSize(20)
          .fontWeight(FontWeight.Bold)

        Text('原价:¥ '+ item.price)
          .fontColor('#CCC')
          .fontSize(18)
          .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)
  }.padding(10)
  .width('80%')
  .height(120)
  .backgroundColor('#ffffffff')
  .borderRadius(15)
}

调用时↓

——————————————————

全局样式
@Styles
function fillScreen() {
   .width('100%')
   .height('100%')
   .backgroundColor('#EFEFEF')
   .padding(20)
   .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])

}

使用方法在需要加样式的容器后面 .fillScreen()就可以

————————————————————

局部样式

@Styles fillScreen() {
  .width('100%')
  .height('100%')
  .backgroundColor('#EFEFEF')
  .padding(20)
  .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])

}

使用方法:和全局样式一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值