HarmonyOS鸿蒙Next中Stack层叠View点击穿透
HarmonyOS鸿蒙Next中Stack层叠View点击穿透
@Entry
@Component
struct Index {
build() {
Stack(){
Column(){
// A组件
Text('A').fontWeight(FontWeight.Bolder)
}
.width("100%")
.height("100%")
.justifyContent(FlexAlign.Start)
.onClick(()=>{
console.log("click A!");
})
Column(){
// B组件,当父布局是stack,同一区域中B会遮挡A的点击事件。
Text('B').fontWeight(FontWeight.Bolder)
}
.width("70%")
.height("70%")
.justifyContent(FlexAlign.Start)
.backgroundColor(Color.Pink)
.onClick(()=>{
console.log("click B!");
})
Column(){
// C组件,当父布局是stack,同一区域中C会遮挡B、A的点击事件。
Text('C').fontWeight(FontWeight.Bolder)
}
.width("40%")
.height("40%")
.justifyContent(FlexAlign.Start)
.backgroundColor(Color.Orange)
.onClick(()=>{
console.log("click C!");
})
}
}
}
更多关于HarmonyOS鸿蒙Next中Stack层叠View点击穿透的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中Stack层叠View点击穿透的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,Stack布局允许子组件层叠显示。如果希望实现点击穿透效果,即点击上层组件时,事件能传递到下层组件,可以通过以下方式实现:
-
设置
touchable
属性:将上层组件的touchable
属性设置为false
,这样点击事件会穿透到下层组件。 -
使用
hitTestBehavior
:通过设置hitTestBehavior
属性为HitTestMode.Transparent
,使上层组件在点击测试时透明,事件可以传递到下层。
示例代码:
Stack() {
// 下层组件
Text('下层组件')
.onClick(() => {
console.log('下层组件被点击');
})
// 上层组件
Text('上层组件')
.touchable(false) // 设置点击穿透
.hitTestBehavior(HitTestMode.Transparent) // 设置点击测试透明
.onClick(() => {
console.log('上层组件被点击');
})
}