Closed han361769045 closed 8 years ago
?能详细描述下如何复现这个BUG?
我用了 recyleView 可以上滑下滑 加载刷新的 当我 在 setSwipeEdge() 以外的 地方向右滑动的时候 导致页面 卡死, 上滑下滑 也不好使 只有再次在 setSwipeEdge()向右滑动,不结束这个activity 然后就好使了。
我dubug 跟踪了一下 是因为 mDragHelper.processTouchEvent(event); 出现异常 catch里的return false 还没有执行,却执行了 return true ,拦截了 所有的 MotionEvent 事件导致的
发现了.呃.好严重的BUG,马上解决。先别设置滑动范围吧。
嗯。还有就是 为什么不走 catch里的return false 却执行了 return true 明明出现异常了 我很不理解
终于修复了。看看还有没有问题吧。手势处理是深坑啊。果然把持不住ViewDragHelper的源码。 另外确实catch到了异常,也返回的false。不过是在onTouchEvent中。返回并没有什么用。问题出在onInterceptTouchEvent。Move时拦截事件时忽略了可触范围,导致事件流全部流向了自己的onTouchEvent。而后面又考虑了范围没处理。
这个问题解决了,但是貌似又出现别的问题了, 我有个页面 就是个简单的Linear布局什么也没有 但是右划 没效果
(☍﹏⁰) 。。你看看那个页面的配置是什么。我要怎么重现这个bug。
BaseActivity
SwipeBackHelper.onCreate(this); SwipeBackHelper.getCurrentPage(this)//获取当前页面 .setSwipeBackEnable(true)//设置是否可滑动 .setSwipeEdge(80)//可滑动的范围。px。200表示为左边200px的屏幕 .setSwipeEdgePercent(0.08f)//可滑动的范围。百分比。0.2表示为左边20%的屏幕 .setSwipeSensitivity(0.5f)//对横向滑动手势的敏感程度。0为迟钝 1为敏感 // .setScrimColor(Color.BLUE)//底层阴影颜色 .setClosePercent(0.8f)//触发关闭Activity百分比 .setSwipeRelateEnable(true)//是否与下一级activity联动(微信效果)。默认关 .setSwipeRelateOffset(200)//activity联动时的偏移量。默认500px。
另外 一个继承 BaseActivity 然后当向右滑动的时候 11-02 08:53:06.831 23438-23438/? I/SWIP: cancel 11-02 08:53:06.831 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.831 23438-23438/? I/SWIP: cancel 11-02 08:53:06.851 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.861 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.881 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.901 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.911 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.931 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.941 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.961 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.981 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.991 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.991 23438-23438/? I/SWIP: onTouchEvent 11-02 08:53:06.991 23438-23438/? I/SWIP: cancel
但我像你这样设置。没问题啊。 setSwipeEdgePercent(0.08f)。只能从边缘开始滑动。
我的别activity(里面有listview 或者是 recyleView)继承这个Baseactivity 都没有问题 但是 就是 简单的布局(没有别的可以滑动的内容)的 activity 右滑就不好使 然后打出的log就是上面那个log
好了。看还有问题吗,不好意思让你当测试了。
嗯这个问题修复了,目前还没有发现别的问题。 辛苦了!
setSwipeEdge(200) 200 以外的滑动
导致 页面 假死 (recyleView )不能滑动 再一次 向右滑动在 200 以内才会 好使