HarmonyOS 鸿蒙Next中半模态页面在档位调整的时候如何获取 SheetSize 枚举

HarmonyOS 鸿蒙Next中半模态页面在档位调整的时候如何获取 SheetSize 枚举

这边主要是实现:

点击按钮

档位一:显示一部分组件

向上滑动

档位二:显示更多的组件

所以我目前想的是通过SheetSize来判断当前档位,但是我没看见有什么回调会给我SheetSize,只有给我px的,但是px每个手机都不一样。

2 回复

在HarmonyOS Next中获取半模态页面的SheetSize枚举,可以通过sheet组件提供的属性直接获取。使用@State修饰符声明变量存储当前SheetSize值,在onChange回调中监听size变化。示例代码:

[@State](/user/State) currentSize: SheetSize = SheetSize.MEDIUM

SheetComponent({
  size: SheetSize.MEDIUM,
  onChange: (size: SheetSize) => {
    this.currentSize = size
  }
})

SheetSize枚举包含SMALL、MEDIUM、LARGE三种预设尺寸。

更多关于HarmonyOS 鸿蒙Next中半模态页面在档位调整的时候如何获取 SheetSize 枚举的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中获取半模态页面的SheetSize枚举值,可以通过监听sheetSizeChange事件来实现。具体实现方式如下:

  1. 首先在创建半模态页面时设置监听:
sheetController.setOnSheetSizeChange((newSize: sheet.Size) => {
  // 在这里处理档位变化
  if(newSize === sheet.Size.MEDIUM) {
    // 档位一逻辑
  } else if(newSize === sheet.Size.LARGE) {
    // 档位二逻辑
  }
});
  1. 如果需要主动获取当前档位,可以使用:
const currentSize = sheetController.getCurrentSheetSize();
  1. 注意SheetSize枚举包含以下值:
  • Size.SMALL:小尺寸
  • Size.MEDIUM:中等尺寸
  • Size.LARGE:大尺寸

这种方式比直接使用px值更可靠,因为它会自动适配不同设备的屏幕尺寸。

回到顶部