要禁止 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。

Android Kotlin:禁用 ViewPager2+Fragment 上下滑动拉伸效果

原文地址: https://www.cveoy.top/t/topic/qjsD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录