Closed gndegithub closed 6 years ago
应该是手势拦截了
` @Override public boolean onInterceptTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mDownX = event.getX();
break;
case MotionEvent.ACTION_MOVE:
// 优化侧滑的逻辑,不要一有稍微的滑动就被ViewDragHelper拦截掉了
if (event.getX() - mDownX < mSlidDistantX) {
return false;
}
break;
}`
修改下SlideBackLayout代码里面的mSlidDistantX的值
源码里本来是有这段代码的,并且我增大了mSlidDistantX的值,还是很容易退出,尤其是列表加载下一页,或是快速滑动列表,webview都控件的时候。现在头大了~有其他办法没
设成边缘滑动返回。。。
我是想这样,可是xx产品,你懂得~ 大神真的无解了吗?
你弄个demo我看下呗 这样说我也找不到问题所在
我直接集成在项目里的,在上下能滑动的页面,只要上滑分页等待加载数据的时候(手势方向是向右上方的),很容易把手势识别为水平方向的,这样就无意间触发了返回,就这么个场景,哭~。有没有办法降低快速返回的灵敏度呢
把y坐标限制加上去 如果y的位移超过多少 也不给滑动返回 当前只是做了x位移的判断
public boolean onInterceptTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mDownX = event.getX();
mDownY = event.getY();
break;
case MotionEvent.ACTION_MOVE:
// 优化侧滑的逻辑,不要一有稍微的滑动就被ViewDragHelper拦截掉了
if (event.getX() - mDownX < mSlidDistantX) {
return false;
}
if((event.getY() - mDownY) > (event.getX() - mDownX) ){
LogUtil.i("aaaa","test----1");
return false;
}
if((event.getY() - mDownY) > 3 * mSlidDistantX){
LogUtil.i("aaaa","test----2");
return false;
}
break;
大过年的也不让你闲着,真是很抱歉。回题~ 是这个意思吗,我这也加了判断,这俩log都没有生效,还是很容易切出去。麻烦您给指导一下,或者直接优化一下源码可好?多谢
你应该把xy坐标的判断合在一起把
分开判断log都没有打出来,和一块更不行了,我是先放在一块的,之后拆分的。方便的话能加下微信或QQ吗?号码都是813196526,或者我加您一下,麻烦了~
377793729 最好你能拆出一个demo我看看
列表页快速上滑的时候,很容易关闭页面,几率很高的。这个怎么整?有没有合适的解决办法,已经集成进去了,刚发现这个问题,要废了,求助大神~