问题描述
我面临一个奇怪的问题,我有一个Viewpager2,片段页面包含Scrollview,HorizontalScrollView和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
会导致此行为。