HarmonyOS 鸿蒙Next:bindContextMenu中offset的x<=15时y值设置无效,transition中centerX、centerY旋转基准非menu左上角而是屏幕左上角
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>
在HarmonyOS鸿蒙Next系统中,关于bindContextMenu
中offset
的x值小于等于15时y值设置无效的问题,这通常是由于系统内部对偏移量的处理逻辑所限。系统可能为了保持用户体验的一致性,对极端偏移值进行了特殊处理或限制。
至于transition
中centerX
、centerY
旋转基准非menu左上角而是屏幕左上角的问题,这是由系统的动画处理机制决定的。默认情况下,旋转动画的基准点通常是屏幕左上角或中心点,而不是自定义菜单的左上角。要更改旋转基准,可以尝试调整动画的anchorX
和anchorY
属性,或者通过自定义动画逻辑来实现。
对于这些问题,开发者需要仔细查阅HarmonyOS的官方文档,了解相关API的具体行为和限制。如果文档中没有明确说明,且上述方法无法解决问题,建议直接联系系统开发者支持或查阅最新的系统更新说明。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html