自定义 GridLayoutManager

Custom GridLayoutManager

我正在考虑一种使用 RecyclerView 实现视图的方法,如下图,其中 header 行位于左侧,header 下的内容位于右侧。 关于如何解决这个问题的任何想法或指示。

如果其他人来这里寻找答案/解决方案,这就是我所做的。我在父 RecyclerView 中使用子 RecyclerView 使用默认的 GridLayoutManager。父 RV 使用 GridLayoutManager,而子 RV 使用 LinearLayoutManager。对于父 RV,使用多个视图类型,位置 0 或位置 %2 == 0 returns HEADER_TYPE,而其余 returns CARD_TYPE。使用这个

mGridLayoutManager = GridLayoutManager(activity, 3)
        mGridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
            override fun getSpanSize(position: Int): Int {
                return when (enquiryAdapter.getItemViewType(position)) {
                    HEADER_TYPE -> 1
                    CARD_TYPE -> 2
                    else -> -1
                }
            }
        }
        recyclerView.layoutManager = mGridLayoutManager

我更改了 spanSize。对于 returns CARD_TYPE 的位置,我膨胀了另一个 RV,它采用列表来布局内容视图。我不确定这是最好的解决方案,但这似乎对我有用。我很乐意接受任何比这更有效 better/simpler 的解决方案。