向后滚动时 Viewpager2 滚动停止工作
Viewpager2 scroll stops working when scrolling back
我遇到了一个奇怪的问题,我有一个 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
会导致此行为。
我遇到了一个奇怪的问题,我有一个 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
会导致此行为。