向后滚动时Viewpager2滚动停止工作

问题描述

我面临一个奇怪的问题,我有一个Viewpager2,片段页面包含Scrollview,Horizo​​ntalScrollView和RecyclerView。

当我启动承载ViewPager的片段时,UI可以使用,如果我向右滑动也可以使用,但是当我向左滑动到上一页时,触摸不再起作用,因此我无法上下滑动页面

在这里感到迷茫,它与旧版ViewPager完美配合

ViewPager片段页面

<ScrollView
    android:isScrollContainer="true"
    android:measureAllChildren="true"
    android:background="?backgroundColor"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        ...
    </androidx.constraintlayout.widget.ConstraintLayout>
 <ScrollView/>

ViewPager

<androidx.viewpager2.widget.ViewPager2
        android:orientation="horizontal"
        android:id="@+id/pager"
        android:layout_width="0dp"
        android:layout_height="0dp"
        ...
        />

解决方法

我通过更新ViewPager的PageTransformer解决了该问题。

我在自己的PageTransformer上扩展了ViewPager2.PageTransformer,以为旧的转换器可以正常工作。

看起来并非如此,旧版本缺少translationZ似乎未设置translationZ会导致此行为。