【入门到实战】OpenHarmony开发:Cell 单元格

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


介绍

单元格为列表中的单个展示项

Cell 单元格

导入依赖

import { CellItemComponent, GroupCellComponent } from '@peakmain/library/Index'

参数

单个单元格,可直接使用CellItemComponent组件

参数名参数类型名称
cellBeanCellBean设置单个单元格布局内容实体类

CellBean实体类

参数名参数类型名称
cellNameResource | string设置单元格标题,默认值为空字符串
cellDescResource | string设置单元格描述,默认值为空字符串
rightTextResource设置右边文本内容,默认值为空字符串
rightTextColorResourceColor设置右边文本字体颜色,默认值为$r("app.color.color_194d53")
isArrowboolean是否显示右边箭头,默认值为true,表示显示
itemClick() => voiditem点击事件,默认为空实现
rightClick() => void右边按钮点击事件,默认为空实现

示例

  let settingData=new CellBean()
  @Builder
  CellItemBuilder(item: CellBean) {
    CellItemComponent({
            cellBean: item
         })
      }
    })
  }
  
 builder(){
    this.CellItemBuilder(this.settingData)
 }

接下来只需要定义CellBean实体类即可,如以下代码

1. 基本使用

设置描述信息

 settingData.cellDesc = "会员信息、头像、昵称"

示例代码如下:

 let settingData = new CellBean()
settingData.cellName = "会员信息"
settingData.cellDesc = "会员信息、头像、昵称"
2. 隐藏右边箭头,展示右边文本

隐藏箭头方法

settingData.isArrow = false

显示右边文本

settingData.rightText = "去开启" //显示右边箭头

示例代码如下:

let settingData = new CellBean()
settingData.cellName = "您已关闭新消息通知"
settingData.cellDesc = "可能会错过订单信息、优惠活动等"
settingData.rightText = "去开启" //显示右边箭头
settingData.isArrow = false
settingData.itemClick = () => {
  promptAction.showToast({
    message: "点击了消息通知"
  })
}
settingData.rightClick = () => {
  promptAction.showToast({
    message: "去开启"
  })
3. 隐藏右边箭头,展示右边文本,并修改右边文本字体颜色
  • 隐藏右边箭头,展示右边文本,参考第2个用法
  • 修改右边字体颜色
settingData.rightTextColor = $r("app.color.color_A9AAAA")

示例代码如下

let settingData = new CellBean()
settingData.cellName = "关于BasicLibrary"
settingData.rightText = ""
settingData.rightTextColor = $r("app.color.color_A9AAAA")
settingData.isArrow = true
4. 动态修改数据,如动态获取版本号
  aboutToAppear(): void {
    AppManager.getAppVersionNameSync().then((result) => {
      let settingData = new CellBean()
      settingData.cellName = "关于BasicLibrary"
      settingData.rightText = result
      settingData.rightTextColor = $r("app.color.color_A9AAAA")
      settingData.isArrow = true
      let index = this.groupCellArray.findIndex((item) => item.title == "")
      this.groupCellArray[index].cellBeanArray[0] = settingData
    })
  }

注:ArkTS所有内容都不支持深层数据更新 UI渲染
想要更新更深层次的嵌套数据, 方案如下

  1. 直接给第二层的属性赋值,此时不更新,直接将第一层对象,重新new一下重新赋值
  2. 更新第二层的数据之前,捎带手更新一下第一层的数据】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值