ViewPager2中的My RecyclerView不滚动。
view page 2的文档中有一节是关于嵌套的可滚动元素的,但是它是关于与view page 2具有相同方向的元素的。我在ViewPager2(水平)和RecyclerView(垂直)中有不同的取向。
如何使回收器视图滚动?我做错了什么?布局文件中的代码:
RecyclerView片段代码:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
// ...
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/pieces_list"
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="0dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</layout>
包含ViewPager2的片段代码:
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/tabs"
style="@style/AppTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMaxWidth="0dp"
app:tabMode="fixed"
app:tabTextAppearance="@style/AppTabTextAppearance" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
我在片段代码中使用FragmentStateAdapter
和TabLayoutMediator
连接它们,如果这很重要的话。
错误不在我的< code > recycle view 或< code > view page 2 设置中。我还使用了< code>AppBarLayout。我没有将< code > app:layout _ scroll flags = " scroll | enter always " 放在包含我的< code > view page 2 with < code > recycle view 的子布局上。但是< code>AppBarLayout的每个子元素都必须指定< code > app:layout _ scroll flags 才能使其可滚动。
此外,ViewPager2
和 RecyclerView
不应该是 AppBarLayout
的子级,而应该是 AppBarLayout
标签的正下方。我将它们移出 AppBarLayout
,现在一切都按预期工作。