这几天项目进行改版,将首页变成Airbnb那种左右滑动的形式。
由于刚开始想错了方向,使用RecyclerView来实现,后面发现和想象中的不一样,RecyclerView是一条线,而viewpager是一个个点的连接。
所以用SwipeRefreshLayout{ScrollView{Viewpager}}来实现。
在滑动冲突这边之前查看了很多demo,最后通过重写dispatchTouchEvent对初试位置和滑动的X、Y进行判断,在Move的时候进行判断,我这边是根据滑动的距离进行判断,再通过getParent().requestDisallowInterceptTouchEvent(false),false是代表父view拦截滑动,true的话是禁止父view拦截。
在滑动到第二个到倒数第二个的时候,两边会显示上一个和下一个的对象,这里的话是需要在viewpager中设置margin,自定义ChildViewPager继承Viewpager,布局属性如图。
<com.estay.apps.client.choice.ChildViewPager