背景介绍
最近项目需求,做一个订制的ViewPager,要求在能够左右滑动的同时,ViewPager的item本身也是一个叠放的容器且可上下滑动实现业务要求,如上滑删除、下滑加入收藏等,于是写一篇博客记录一下控件的实现。
首先来看一下效果:
基本思路
外层为ViewPager,实现条目的左右滑动
ViewPager的子Item为RecyclerView,自定义该RecyclerView的LayoutManager及ItemTouchHelper.SimpleCallback实现控件叠放及上下滑动
实现过程
首先是布局文件:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
tools:context="com.mapleaf.centerviewpager.MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"