【HarmonyOS】如何解决智能穿戴设备中swiper组件右滑与系统退出应用冲突问题(API6 JS)

发布时间 2023-06-20 11:22:32作者: Mayism123
【关键字】

API6、JS、swiper组件、智能穿戴、setSwipeToDismiss

 

【问题描述】

使用API6 JS开发智能穿戴设备HarmonyOS应用,在首页使用swiper组件时,右滑swiper时会退出应用,无法实现swiper右滑效果,效果如下所示:

GIF.gif

 

【问题分析与原因】

当页面栈只有一个页面时,默认滑动事件分发会让应用退出,而不是右滑swiper,可以通过app.setSwipeToDismiss(true)设置关闭右滑退出功能。当页面栈有多个页面时,使用swiper右滑不会退出应用,此问题只会在只有一个页面时才会出现。

由于app.setSwipeToDismiss(true)是全局设置关闭右滑退出功能,若应用存在多个页面,建议在swiper的页面中onDestory方法中将此设置设置为false,即其他页面仍保持右滑退出功能。

 

【问题规避方案】

 当只有一个页面且在页面中使用swiper时,建议在页面的onInit中设置:app.setSwipeToDismiss(true); 在onDestory中设置:app.setSwipeToDismiss(false);

cke_2298.png

 

【其他】

1、setSwipeToDismiss在智能穿戴设备才会生效;

2、setSwipeToDismiss不仅可以用在整体右滑退出事件中,在某个具体的组件也可使用此方法,如dialog.setSwipeToDimiss(true)设置可实现右滑关闭dialog功能;dialog中setSwipeToDismiss用法参考文档:

https://developer.huawei.com/consumer/cn/forum/topic/0201763274535700931?fid=0102683795438680754

https://developer.harmonyos.com/cn/docs/documentation/doc-references/commondialog-0000001054678727?ha_linker=eyJ0cyI6MTY4Njg3OTY0NzY0NywiaWQiOiJhNmU4MjgyNTk2ZjgzNTBlOTY5NDRiYmIwNmRmZWE5NiJ9#ZH-CN_TOPIC_0000001054678727__setSwipeToDismiss-boolean-