鸿蒙OS开发之页面跳转(Slice)引起的按钮点击不了的问题,以及自己的感悟

前情:已经粗略的看完鸿蒙OS开发文档,但是有很多地方还不懂,今天翻过头来重新看一下重新跟着操作一下,然后发现的问题。

该问题前段时间有人发现过,这次操作正好碰到,翻阅了一下其他人的解决办法,正好解决。

 

正式开场:

在开发文档中介绍:AbilitySlice间导航

 

在练习这块的时候根据官网文档操作发现在AbilitySlice跳转后,使用返回按钮返回前一个Slice,重新跳转目标Slice的时候发现根本跳转不过来。

 

正好在前端时候逛论坛的时候碰到这个问题,搜索了一下正好有小伙伴在回复中有解决办法,自己测试果然有效。问题是在官方文档中,在前一个Slice中初始化按钮的点击事件是写在了onStart中,这样就会导致上述我倾述的问题,如果把初始化按钮点击事件写在了onActive中就可以重复触发事件。

 

最后我分析,这个可能是和Slice的生命周期有关系,因为Slice加载的时候onStart的操作只触发一次,所以从栈中重新浮出来的时候onStart不再执行,只是该slice从BACKGROUND状态编导Active状态的时候触发了onActive的操作,所以又重新初始了一下按钮的点击事件,这样才是按钮点击重新生效的。

 

上述只是我自己的一个猜想,希望能得到官方的肯定。

鸿蒙OS
页面跳转
2020-10-24 11:20:18
浏览
1
收藏 0
回答 3
待解决
回答 3
按赞同
/
按时间
bingfeng
1

在使用present进行页面跳转的时候,Slice的实例确实会终止,导致不走onStart,只走OnActive,具体可以参考我们的开发者文档AbilitySlice间导航。

分享
微博
QQ
微信
回复
2020-10-24 12:14:06
deanyuancn

不是,是按钮焦点区域的问题,你点击按钮的时候,要点击按钮遍上一点点,才能触发按钮的点击事件!

分享
微博
QQ
微信
回复
2020-10-24 11:41:55
新新人类

这个我测试过了,onstart中好像就能触发一次。如果写在onActive每次都可以触发。你是不是说的是如果使用Java写Button的时候,点击靠上一点才能触发点击事件,这样的问题我也碰到过,这个好多人都碰见过这个问题!

分享
微博
QQ
微信
回复
2020-10-24 11:52:54
相关问题
关于鸿蒙OS蓝牙开发问题
2965浏览 • 1回复 待解决
点击服务卡片如何跳转至指定页面
434浏览 • 1回复 待解决
鸿蒙软键盘弹出后,页面底部按钮
2243浏览 • 0回复 待解决
关于鸿蒙OS蓝牙API问题
4773浏览 • 1回复 待解决
鸿蒙操作系统应用开发软总线
9006浏览 • 2回复 已解决
如何测试自己开发应用?
811浏览 • 1回复 待解决
页面之间跳转方式怎么设置
4447浏览 • 1回复 待解决
Java Player视频播放不了问题
6703浏览 • 2回复 待解决
ArkTs如何跳转当前应用设置页面
195浏览 • 1回复 待解决
如何跳转到共享包中指定页面
210浏览 • 1回复 待解决
js能跳转到java写页面
8456浏览 • 1回复 待解决
点击拒接按钮后无法再次来电
116浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人