Android Kotlin:禁用 ViewPager2+Fragment 上下滑动拉伸效果
要禁止 ViewPager2+Fragment 上下滑动时的拉伸效果,可以通过自定义 ViewPager2 的一个子类来实现。
首先,创建一个名为 NoSwipeViewPager 的类,继承自 ViewPager2。然后,覆盖 'onInterceptTouchEvent()' 和 'onTouchEvent()' 方法,并在这两个方法中返回 false,以禁止滑动。
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
import androidx.viewpager2.widget.ViewPager2
class NoSwipeViewPager @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null
) : ViewPager2(context, attrs) {
override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
return false
}
override fun onTouchEvent(event: MotionEvent): Boolean {
return false
}
}
在你的布局文件中,将原来的 ViewPager2 替换为 NoSwipeViewPager:
<com.example.myapplication.NoSwipeViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
这样,当你在 ViewPager2 上滑动时,就不会出现拉伸效果了。注意,这样也会禁止用户手动滑动 ViewPager2,如果你需要启用手动滑动,请在需要的时候恢复默认的 ViewPager2,并在不需要手动滑动时使用 NoSwipeViewPager。
原文地址: https://www.cveoy.top/t/topic/qjsD 著作权归作者所有。请勿转载和采集!