Jude95 / EasyRecyclerView

ArrayAdapter,pull to refresh,auto load more,Header/Footer,EmptyView,ProgressView,ErrorView
2.03k stars 458 forks source link

滑动冲突 #27

Closed ruhaly closed 8 years ago

ruhaly commented 8 years ago

我将一个viewpager塞到header里面,发现滑动的时候老是滑动不过去,手指滑动一点就又退回去了,我重写了viewpager还是没用,求解 还有,可以自动下拉加载更多么

Jude95 commented 8 years ago

是ViewPager与RefreshLayout手势冲突了吧。我更新了,看看3.4.5版本看看还有没有问题。 自动下拉加载更多...是什么。

ruhaly commented 8 years ago

好的谢谢了,自动下拉就是,我刚进入界面的时候,不通过手来下拉刷新,会自动下拉刷新数据

Jude95 commented 8 years ago

void setRefreshing(final boolean isRefreshing, final boolean isCallback)//第二个参数是是否立即回调 在onCreate()里调用就好了。

ruhaly commented 8 years ago

谢谢了

ruhaly commented 8 years ago

我建议 ,将下拉跟上拉,单独是一个library,这样可以放到其他的地方,这样可以包裹在最外层,因为现在如果在界面上加上appbar的话,下拉刷新的控件就会显示在中间位置

Jude95 commented 8 years ago

本来就是把单独的库封装进一起的才有这个库....为了方便。 你不用这个库的下拉刷新,在外面自己用refreshlayout就好了。

ruhaly commented 8 years ago

有个问题请教,requestDisallowInterceptTouchEvent 这个方法是告诉父控件不要拦截自己,你加到refresh控件里面跟viewpager有什么关系?

Jude95 commented 8 years ago

view.requestDisallowInterceptTouchEvent是让view不拦截事件。 冲突是,你的手势会先经过RereshLayout再到viewpager。而RereshLayout检测到下拉手势就会拦截事件流。导致viewpager的手势取消。所以横向滑动只要竖直方向差值超过了阈值就会触发RereshLayout的拦截。用这个函数取消掉他的拦截。就好了。他只会接收到没有被子View消费的事件。

ruhaly commented 8 years ago

谢谢大侠啦