前言:
flutter系统级别的bug,三根手指滑动屏幕(部分手机截屏操作就是三根手指滑动),屏幕会卡死。
系统:
电脑: macOS 10.15.7
Flutter 2.0.6 • channel stable • github.com/flutter/flu…
Framework • revision 1d9032c7e1 (8 months ago) • 2021-04-29 17:37:58 -0700
Engine • revision 05e680e202
Tools • Dart 2.12.
手机:安卓手机
问题描述:
用户反馈截屏分享出去,然后返回项目,导致页面任何区域都不能点击或滑动(冻屏了)
定位分析: 发现不是分享就是截屏就会出现该问题,进一步定位 发现 只要三个手指滑动就会出现该问题(因为很多安卓手机的截屏快捷键就是 三个手指滑动,同理如果用物理键去截图没有该问题产生)
吐槽一下: 定位问题开始就走偏了,因为的项目我进行了flutter的升级 升级前 1.22.6版本,升级之后是2.0.6版本,建议如果不是一定要去升级的话,强烈建议不要升级,因为后面不管是window和Mac 要折腾好久。
webview_flutter是web view容器的插件的,项目一开始就是把该插件下载下来了,用本地的插件,开始定位的时候以为是该插件版本低的原因,我直接用线上当前最新版2.0.8,正好这个版本也是支持空安全的,发现不行……
随后找到相关的文章参考:
着又退回用本地的webView_flutter,改动
GestureDetector 以为要改动的地方就是
发现还是不行……
解决方案:
再找资料,某篇博客上讲了
进一步进去看
说明一下: 这个文件是包的文件,window和Mac路径不完全一样,其实只要在 Android studio 上调试一下
相关代码拷贝粘贴到flutter的packages里面
/// These arrays must have same length, otherwise below constructor 'AndroidMotionEvent' will throw exception.
if (pointers.length != pointerProperties.length ||
pointers.length != pointerPositions.length) {
return null;
}
window的路径 参考
重新调试运行,完美,问题解决!
结语
创作不易,请多点赞+关注,谢谢! 有问题留言,我都会及时回复。