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

【每日学点HarmonyOS Next知识】抽屉效果、树状组件、离屏渲染、上下文获取、Tab声明周期

1、HarmonyOS 如何实现抽屉效果的控件?

使用半模态框实现抽屉效果参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-sheet-transition-V5#%E7%A4%BA%E4%BE%8B

// xxx.ets
@Entry
@Component
struct SheetTransitionExample {
  @State isShow: boolean = false
  @State sheetHeight: number = 300;

  @Builder
  myBuilder() {
    Column() {
      Button("change height")
        .margin(10)
        .fontSize(20)
        .onClick(() => {
          this.sheetHeight = 500;
        })

      Button("Set Illegal height")
        .margin(10)
        .fontSize(20)
        .onClick(() => {
          this.sheetHeight = -1;
        })

      Button("close modal 1")
        .margin(10)
        .fontSize(20)
        .onClick(() => {
          this.isShow = false;
        })
    }
    .width('100%')
    .height('100%')
  }

  build() {
    Column() {
      Button("transition modal 1")
        .onClick(() => {
          this.isShow = true
        })
        .fontSize(20)
        .margin(10)
        .bindSheet($$this.isShow, this.myBuilder(), {
          height: this.sheetHeight,
          backgroundColor: Color.Green,
          onWillAppear: () => {
            console.log("BindSheet onWillAppear.")
          },
          onAppear: () => {
            console.log("BindSheet onAppear.")
          },
          onWillDisappear: () => {
            console.log("BindSheet onWillDisappear.")
          },
          onDisappear: () => {
            console.log("BindSheet onDisappear.")
          }
        })
    }
    .justifyContent(FlexAlign.Center)
    .width('100%')
    .height('100%')
  }
}

效果图:
![[【每日学点HarmonyOS Next知识】25.02.25.gif]]

通过浮层属性和Panel容器组合实现效果参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-panel-V5
Panel,可滑动面板,提供一种轻量的内容展示窗口,方便在不同尺寸中切换。

2、HarmonyOS treeview怎么实现自定义Cell内容?

1、treeview更改Cell的高度、内容文字的颜色、字体、间距、右边箭头按钮的显示隐藏
2、怎么实现右滑Cell出现删除按钮
3、怎么实现Cell选择功能,每项cell开始位置都显示圆形单选框

1:treeview暂不支持自定义节点样式
2:参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-container-listitem-V5#ZH-CN_TOPIC_0000001930676593__swipeaction9
3:需要自定义样式来实现

3、HarmonyOS CanvasRenderingContext2D的drawImage方法,绘制通过离屏渲染生成ImageBItmap显示不出来?

CanvasRenderingContext2D的drawImage方法,绘制通过离屏渲染生成ImageBItmap显示不出来

通过OffscreenCanvas生成的ImageBitmap对象官方案例推荐使用CanvasRenderingContext2D.transferFromImageBitmap()显示,使用drawImage无法显示。

4、HarmonyOS entryAbility的onWindowStageCreate中获取的context为空?

getContext(component?: Object):Context 参数为@Component修饰的页面,entryAbility中不支持,在ability内可使用this.context 直接获取,getContext参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-getcontext-V5

5、HarmonyOS 使用@Entry修饰的组件不走onPageShow方法?

Tabs内嵌使用@Entry修饰的组件不走onPageShow方法。

tabs里使用的是组件,就算你添加了@Entry,还是按照组件去识别了,所以不走onPageShow,尝试使用aboutToAppear


http://www.kler.cn/a/586651.html

相关文章:

  • python 操作 mongodb 输出执行命令的日志
  • 2025-03-15 学习记录--C/C++-PTA 习题3-3 出租车计价
  • 历年华中科技大学计算机考研复试上机真题
  • 推荐系统基础
  • fastapi +angular​迷宫求解可跨域
  • 【现代深度学习技术】卷积神经网络06:卷积神经网络(LeNet)
  • Protobuf 学习与实践
  • 医院手术麻醉信息系统是如何为医院提质增效的?
  • spring boot实现程序运行过程中数据源动态切换
  • Linux文件管理练习
  • k8s调度机制:亲和性,污点,容忍
  • 4.0 相机引导XY轴控制螺丝枪打螺丝
  • /etc/sysconfig/jenkins 没有这个文件
  • ffmpeg 添加毫秒时间戳
  • Logo语言的移动应用安全
  • Ansible 自动化运维
  • java手机号、邮箱、日期正则表达式
  • 向量数据库对比以及Chroma操作
  • 数据分布偏移检测:保障模型在生产环境中的稳定性
  • 鸿蒙 @ohos.arkui.observer (无感监听)