HarmonyOS 鸿蒙Next CustomerDialog 组件中嵌套Scroll ,(不滑动?)
HarmonyOS 鸿蒙Next CustomerDialog 组件中嵌套Scroll ,(不滑动?)
在CustomeDialog中使用Scroll组件无法滑动,
Scroll(this.scroller) {
}
.layoutWeight(1)
.scrollable(ScrollDirection.Vertical)
父组件高度都是100%
demo您参考下
@CustomDialog
struct CustomDialogExample {
scroller: Scroller = new Scroller()
controller?: CustomDialogController
cancel: () => void = () => {
}
confirm: () => void = () => {
}
build() {
Scroll(this.scroller) {
Column() {
Text('这是自定义弹窗')
.fontSize(30)
.height(100)
Button('点我关闭弹窗')
.onClick(() => {
if (this.controller != undefined) {
this.controller.close()
}
})
.margin(20)
}.height(500).width(300)
}
.layoutWeight(1)
.scrollable(ScrollDirection.Vertical)
}
}
@Entry
@Component
struct CustomDialogUser {
dialogController: CustomDialogController | null = new CustomDialogController({
builder: CustomDialogExample({
cancel: () => {
this.onCancel()
},
confirm: () => {
this.onAccept()
}
}),
cancel: this.existApp,
autoCancel: true,
onWillDismiss: (dismissDialogAction: DismissDialogAction) => {
console.info("reason=" + JSON.stringify(dismissDialogAction.reason))
console.log("dialog onWillDismiss")
if (dismissDialogAction.reason == DismissReason.PRESS_BACK) {
dismissDialogAction.dismiss()
}
if (dismissDialogAction.reason == DismissReason.TOUCH_OUTSIDE) {
dismissDialogAction.dismiss()
}
},
alignment: DialogAlignment.Center,
// offset: { dx: 0, dy: -20 },
customStyle: false,
cornerRadius: 20,
width: 300,
height: 200,
borderWidth: 1,
borderStyle: BorderStyle.Dashed,
borderColor: Color.Blue,
backgroundColor: Color.White,
})
aboutToDisappear() {
this.dialogController = null // 将dialogController置空
}
onCancel() {
console.info('Callback when the first button is clicked')
}
onAccept() {
console.info('Callback when the second button is clicked')
}
existApp() {
console.info('Click the callback in the blank area')
}
build() {
Column() {
Button('click me')
.onClick(() => {
if (this.dialogController != null) {
this.dialogController.open()
}
}).backgroundColor(0x317aff)
}.width('100%').margin({ top: 5 })
}
}
更多关于HarmonyOS 鸿蒙Next CustomerDialog 组件中嵌套Scroll ,(不滑动?)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,Next CustomerDialog组件嵌套Scroll视图时,若遇到不滑动的问题,通常是因为滚动事件的冲突或组件属性的设置不当。
针对此情况,首先需要确保Scroll组件已正确设置其滚动方向(如vertical或horizontal)及高度或宽度属性,确保有足够的空间供其滚动。同时,检查Dialog组件是否有设置阻止内部元素滚动的属性,例如某些布局属性可能默认会限制子视图的滚动。
此外,还需考虑Dialog的触摸事件是否被其他组件拦截。可以通过设置触摸事件的监听和拦截逻辑,确保滚动事件能够正确地传递给Scroll组件。
另一个可能的原因是,Dialog的弹出层级和布局方式影响了Scroll的滚动。可以尝试调整Dialog的布局方式,如使用绝对布局或相对布局,以及调整Dialog的层级,确保Scroll组件在正确的层级上。
最后,确保Scroll组件内的内容确实超出了其可视区域,否则即使设置了滚动属性,也无法触发滚动。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html