📜  布局不匹配父不在nestedscrollview match_parent 中工作 (1)

📅  最后修改于: 2023-12-03 14:54:01.508000             🧑  作者: Mango

布局不匹配父不在nestedscrollview match_parent 中工作

问题描述

在使用NestedScrollView嵌套RecyclerView的时候,如果RecyclerView的高度设置为match_parent,就会出现布局不匹配的问题,导致我们无法在RecyclerView中滚动。

原因分析

NestedScrollView是一个支持嵌套滚动的容器,它可以嵌套其他滚动控件,比如RecyclerView。当我们设置RecyclerView的高度为match_parent时,它会沾满整个父容器,这个父容器并不是NestedScrollView,因此RecyclerView就不能正常滚动了。

解决方案
1. 设置RecyclerView的高度

我们可以通过设置RecyclerView高度为指定值的方式解决这个问题,比如我们可以将高度设置成wrap_content,具体代码如下:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</androidx.recyclerview.widget.RecyclerView>

这样RecyclerView就可以正常滚动了。

2. 将RecyclerView放置在NestedScrollView中

另一种解决方案是将RecyclerView放置在NestedScrollView中,这样RecyclerView就可以正常地滚动。具体代码如下:

<androidx.core.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </androidx.recyclerview.widget.RecyclerView>

</androidx.core.widget.NestedScrollView>
结论

通过以上两种方式,我们可以很容易地解决布局不匹配父不在NestedScrollView match_parent中工作的问题,使RecyclerViewNestedScrollView中正常滚动。