【HarmonyOS 5.0.0 或以上】构建多层抽屉组件 Drawer:支持左/右/底部弹出、遮罩控制、嵌套内容交互

🎯 目标

封装一个灵活的抽屉组件 CommonDrawer,适用于:

  • 侧边栏设置面板(如通知管理、筛选器)

  • 底部弹出菜单(如分享/选择操作)

  • 多层嵌套抽屉(如“城市 → 区县 → 门店”级联)

  • 支持遮罩关闭、滑动动画、内容自定义插槽

  • 可配置打开方向(left / right / bottom)


🧱 样式示意

← 从左侧滑入内容       ↑ 底部弹出内容
╭───────────────╮     ╭───────────────╮
│ 设置内容区域       │     │ 分享方式区域       │
╰───────────────╯     ╰───────────────╯

🧰 组件实现:CommonDrawer.ets

@Component
export struct CommonDrawer {
  @Prop visible: boolean = false
  @Prop position: 'left' | 'right' | 'bottom' = 'right'
  @Prop width: string = '70%'         // left/right 模式宽度
  @Prop height: string = '60%'        // bottom 模式高度
  @Prop maskClosable: boolean = true
  @Prop onClose: () => void = () => {}

  build() {
    if (!this.visible) return

    Stack()
      .width('100%')
      .height('100%') {
      // 遮罩层
      Blank()
        .b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值