From 9e8863ea280528cfc088cf92190e7e8b0acd0c2b Mon Sep 17 00:00:00 2001 From: Quyunshuo Date: Fri, 30 Jul 2021 12:21:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0ViewPager2Ktx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/ktx/ViewPager2Ktx.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib_base/src/main/java/com/quyunshuo/androidbaseframemvvm/base/ktx/ViewPager2Ktx.kt diff --git a/lib_base/src/main/java/com/quyunshuo/androidbaseframemvvm/base/ktx/ViewPager2Ktx.kt b/lib_base/src/main/java/com/quyunshuo/androidbaseframemvvm/base/ktx/ViewPager2Ktx.kt new file mode 100644 index 0000000..95ff7cc --- /dev/null +++ b/lib_base/src/main/java/com/quyunshuo/androidbaseframemvvm/base/ktx/ViewPager2Ktx.kt @@ -0,0 +1,38 @@ +package com.quyunshuo.androidbaseframemvvm.base.ktx + +import android.view.View +import androidx.recyclerview.widget.RecyclerView +import androidx.viewpager2.widget.ViewPager2 + +/** + * 设置ViewPager2的过度滚动模式为绝不允许用户过度滚动此视图 + * @receiver ViewPager2 + */ +fun ViewPager2.setOverScrollModeToNever() { + val childView: View = this.getChildAt(0) + if (childView is RecyclerView) { + childView.overScrollMode = RecyclerView.OVER_SCROLL_NEVER + } +} + +/** + * 设置ViewPager2的过度滚动模式为始终允许用户过度滚动此视图,前提是它是可以滚动的视图 + * @receiver ViewPager2 + */ +fun ViewPager2.setOverScrollModeToAlways() { + val childView: View = this.getChildAt(0) + if (childView is RecyclerView) { + childView.overScrollMode = RecyclerView.OVER_SCROLL_ALWAYS + } +} + +/** + * 设置ViewPager2的过度滚动模式为仅当内容大到足以有意义地滚动时,才允许用户过度滚动此视图,前提是它是可以滚动的视图。 + * @receiver ViewPager2 + */ +fun ViewPager2.setOverScrollModeToIfContentScrolls() { + val childView: View = this.getChildAt(0) + if (childView is RecyclerView) { + childView.overScrollMode = RecyclerView.OVER_SCROLL_IF_CONTENT_SCROLLS + } +} \ No newline at end of file