HarmonyOS 鸿蒙Next:bindContextMenu中offset的x<=15时y值设置无效,transition中centerX、centerY旋转基准非menu左上角而是屏幕左上角

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:bindContextMenu中offset的x<=15时y值设置无效,transition中centerX、centerY旋转基准非menu左上角而是屏幕左上角
<markdown _ngcontent-mvv-c237="" class="markdownPreContainer">

@Entry
@Component
struct Index {
@State isShow: boolean = false

@Builder page1() { Column() { Text(‘page1’) Button(‘返回’) .onClick(() => { this.isShow = false }) } .backgroundColor(‘red’) }

build() { Column() { Button(‘转场’) .onClick(() => { console.log(‘去转场’) this.isShow = true }) .bindContextMenu(this.isShow, this.page1, { onDisappear: () => { this.isShow = false }, offset: { // 问题2: 这里 x 值 <= 15 时,y 值设置多少都没有作用,并不进行偏移 x: 15, y: 100 }, transition: TransitionEffect.rotate({ x: 0, y: 0, z: 1, angle: ‘360deg’, // 问题1: 这里设置的 center 不是以 menu 自身的左上角作为旋转基准,而是以整个屏幕的左上角进行旋转了 centerX: 0, centerY: 0 }).animation({ duration: 3000 }) }) }.margin({ top: 200, bottom: 200 }) .backgroundColor(‘green’) } }

@Builder function title() { Column() { Text(‘title’) } } <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>

</markdown>

1 回复

在HarmonyOS鸿蒙Next系统中,关于bindContextMenuoffset的x值小于等于15时y值设置无效的问题,这通常是由于系统内部对偏移量的处理逻辑所限。系统可能为了保持用户体验的一致性,对极端偏移值进行了特殊处理或限制。

至于transitioncenterXcenterY旋转基准非menu左上角而是屏幕左上角的问题,这是由系统的动画处理机制决定的。默认情况下,旋转动画的基准点通常是屏幕左上角或中心点,而不是自定义菜单的左上角。要更改旋转基准,可以尝试调整动画的anchorXanchorY属性,或者通过自定义动画逻辑来实现。

对于这些问题,开发者需要仔细查阅HarmonyOS的官方文档,了解相关API的具体行为和限制。如果文档中没有明确说明,且上述方法无法解决问题,建议直接联系系统开发者支持或查阅最新的系统更新说明。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部