首页 > 解决方案 > ViewPager2 内的 ViewPager2(使用 FragmentStateAdapter)。如何使嵌套滚动工作

问题描述

我需要两个水平 ViewPager2 两个允许嵌套滚动。

我搜索了很多,还找到了 ViewPager2 的官方文档以及嵌套滚动的工作原理。问题是,该解决方案涉及可滚动元素是唯一这样的子元素

<androidx.viewpager2.integration.testapp.NestedScrollableHost
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp">
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/first_rv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFFFFF" />
    </androidx.viewpager2.integration.testapp.NestedScrollableHost>

我的问题是我有一个带有 ViewPager2 的顶级 TabLayout 和一个带有 ViewPager2 的嵌套级选项卡布局。但对于 TabLayout,ViewPager2 必须是直接子级。所以上述解决方案不适用于嵌套的 ViewPager2。

对于顶层和嵌套布局,我的布局看起来像这样。

<com.google.android.material.tabs.TabLayout
            android:id="@+id/tab_layout"
            style="@style/App.TabLayout.Module"
            android:layout_width="match_parent"
            android:layout_height="40dp"
          />

        <androidx.viewpager2.widget.ViewPager2
            android:id="@+id/view_pager"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />

有人知道如何启用嵌套 ViewPager2 的滚动吗?如果我禁用顶级视图寻呼机的滚动,我只能滚动。我还在 medium.com 上找到了一篇文章,它如何与内部的 RecyclerView 一起工作,但由于我无法扩展 ViewPager2,所以这个解决方案也不起作用

标签: androidandroid-tablayoutandroid-viewpager2

解决方案


推荐阅读