嵌套-水平-RecyclerView不包装其内容

时间:2019-10-05 10:14:23

标签: android android-recyclerview android-scrollview android-nestedscrollview

这个问题实际上与“ Nested Recycler view height doesn't wrap its content”相同,但针对水平RecyclerView

我有一个RecyclerView嵌套在两个ScrollView中。我希望RecyclerView布置所有项目(出于我的目的是必需的),并让ScrollView来处理滚动。因此,我将RecyclerView的宽度和高度设置为wrap_content,并将nestedScrollingEnabled设置为false。

<androidx.core.widget.NestedScrollView
    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"
    android:id="@+id/vscroll"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
    <HorizontalScrollView
        android:id="@+id/hscroll"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:nestedScrollingEnabled="false"/>
    </HorizontalScrollView>
</androidx.core.widget.NestedScrollView>
recyclerView.isNestedScrollingEnabled = false
recyclerView.layoutManager = LinearLayoutManager(recyclerView.context, HORIZONTAL, false)

如果RecyclerView的方向是垂直的,则此方法正常工作。但是我希望RecyclerView可以水平排列项目。但是,如果将LinearLayoutManager设置为水平,即使RecyclerView的宽度设置为wrap_content,它也只能渲染屏幕上的内容,而不是整个宽度!它也不会触发在水平滚动上拉出新项目(我想是因为滚动是由ScrollView处理的)。

这是RecyclerView库中的错误吗?还是因为HorizontalScrollView与嵌套的RecyclerView不能像(垂直)NestedScrollView一样好玩而发生?我需要类似NestedHorizontalScrollView的东西吗?我在做错什么吗?

0 个答案:

没有答案