HarmonyOS鸿蒙Next中flutter 3.35.7 GestureDetector触发点击会很卡
HarmonyOS鸿蒙Next中flutter 3.35.7 GestureDetector触发点击会很卡 【问题描述】:鸿蒙flutter 3.35.7 GestureDetector触发点击 ,然后通过go_router跳转二级页面(context.push(’/login’)),二级页面build里面有riverpod provider初始化,进入后返回,再次进入就会很卡。(在profile或者release下必现),使用TextButton来触发这个点击动作就没有问题,使用GestureDetector就有问题。
【问题现象】:GestureDetector触发点击 ,然后通过go_router跳转二级页面(context.push(’/login’)),二级页面build里面有riverpod provider初始化,进入后返回,再次进入就会很卡
【版本信息】:flutter 3.35.7
更多关于HarmonyOS鸿蒙Next中flutter 3.35.7 GestureDetector触发点击会很卡的实战教程也可以访问 https://www.itying.com/category-92-b0.html
开发者您好,想跟您确定下,您问题描述中的riverpod provider都是三方库吗,使用的哪个版本呢?查看OpenHarmony平台已适配三方库,只看到provider。同时,为了更快分析定位您的问题,您方便的话,麻烦您提供下最小可复现demo。
更多关于HarmonyOS鸿蒙Next中flutter 3.35.7 GestureDetector触发点击会很卡的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
这个我们已经定位到了,是三方库riverpod的bug,谢谢大佬
好的开发者,后续有任何问题欢迎您随时提问~
同问
在鸿蒙NEXT上,Flutter 3.35.7的GestureDetector点击卡顿通常因鸿蒙NEXT的触摸事件分发机制与Flutter手势识别器存在兼容性问题,或渲染后端未启用硬件加速(如未使用impeller)。此外,widget层不必要的重建也可能导致帧率下降。
该问题在Flutter 3.35.7 for HarmonyOS Next中已确认存在,表现为GestureDetector点击事件结合go_router页面跳转后,二级页面返回再进入时卡顿。核心原因在于GestureDetector的手势识别器未在页面退出时及时销毁,导致事件通道残留,随后重新进入时累积了多余的触摸竞争,引发性能下降。TextButton内部使用了更简洁的手势处理,不受此影响。临时解决方案:将GestureDetector替换为InkWell或TextButton,或手动在dispose中取消GestureDetector的识别器。此问题已在后续版本修复,建议同步升级。

