18

找不到删除 ViewPager2 过度滚动阴影动画的方法。我知道在 ViewPager 上,您可以直接将 overscrollMode 属性设置为 never,但是,它在 ViewPager2 上不起作用

已经尝试了以下

<androidx.viewpager2.widget.ViewPager2
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
    android:layout_height="match_parent"
        android:overScrollMode="never"/>
binding.viewPager.apply {
        adapter = adapter
        orientation = ViewPager2.ORIENTATION_VERTICAL
        overScrollMode = ViewPager2.OVER_SCROLL_NEVER
        offscreenPageLimit = if (containsVideo) 2 else 5
}
4

6 回答 6

38

解决方案

binding.viewPager2.apply {
    adapter = vpAdapter
    orientation = ViewPager2.ORIENTATION_VERTICAL
    registerOnPageChangeCallback(pageChangeCallback)
    (getChildAt(0) as RecyclerView).overScrollMode = RecyclerView.OVER_SCROLL_NEVER
}
于 2019-07-08T20:35:17.213 回答
12

万一有人在寻找 Java 解决方案

View child = viewPager2.getChildAt(0);
if (child instanceof RecyclerView) {
    child.setOverScrollMode(View.OVER_SCROLL_NEVER);
}
于 2020-04-07T10:34:04.073 回答
1

作为 Kotlin 扩展:

fun ViewPager2.removeOverScroll() {
    (getChildAt(0) as? RecyclerView)?.overScrollMode = View.OVER_SCROLL_NEVER
}

并且您在片段/活动中使用它:

viewPager.removeOverScroll()
于 2021-10-04T23:49:31.670 回答
0

这个对我有用:

val child = binding.<your viewPager camelCase id>.getChildAt(0)
    (child as? RecyclerView)?.overScrollMode = View.OVER_SCROLL_NEVER
于 2021-05-31T13:25:17.980 回答
0

在我的项目中工作的我的 kotlin 代码版本,没有绑定:

// over scroll animation
val child: View = pager.getChildAt(0)

if (child is RecyclerView) {
    child.overScrollMode = View.OVER_SCROLL_NEVER
}

谢谢。

于 2021-06-15T18:19:27.390 回答
0

使用 android:overScrollMode="never"

 <androidx.viewpager2.widget.ViewPager2
        android:id="@+id/infoViewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:overScrollMode="never"
        app:layout_constraintBottom_toTopOf="@id/guideLine1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        />
于 2022-02-12T21:36:34.880 回答