【问题标题】:How to use a horizonta scroll in a Recyclerview with multiple view types如何在具有多种视图类型的 Recyclerview 中使用水平滚动
【发布时间】:2022-08-17 18:33:17
【问题描述】:

我有一个具有多种视图类型的回收器视图:

我已经能够让垂直滚动工作,但是如何使用具有多种视图类型的 recyclerview 进行水平滚动视图?

我将 GridLayout Manager 用于单个 recyclerview

布局我想使用水平滚动视图

<HorizontalScrollView 
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:layout_width=\"match_parent\"
android:padding=\"10dp\"
android:layout_height=\"wrap_content\">

    <LinearLayout
        android:orientation=\"horizontal\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"
        android:layout_marginTop=\"10dp\">

        <ImageView
            android:id=\"@+id/img_top_picks\"
            android:layout_width=\"100dp\"
            android:layout_height=\"100dp\"/>
    </LinearLayout>
</HorizontalScrollView>

MainAcitivity -- 使用 recyclerview 的活动

 binding.rcvNft.apply {

        val gridLayoutManager = GridLayoutManager(this@MainActivity, 6)
        gridLayoutManager.spanSizeLookup = object : SpanSizeLookup() {
            override fun getSpanSize(position: Int): Int {
                return when (nftAdapter.getItemViewType(position)) {
                    R.layout.rcv_lyt_title -> 6
                    R.layout.rcv_lyt_featured -> 6
                    R.layout.rcv_lyt_top_picks -> 1 --> //I want to use a horizontal scroll view for this layout
                    R.layout.rcv_lyt_trending -> 6
                    else -> 1
                }
            }
        }

        layoutManager = gridLayoutManager
        setHasFixedSize(true)
        adapter = nftAdapter

    }

现在,这些项目很小/包装,只能从内部滚动。见下图:

    标签: java android kotlin android-recyclerview


    【解决方案1】:

    你找到解决办法了吗?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多