1

我正在使用MergeAdapter组合 2 个适配器它工作正常。

问题是对于 1 个适配器,我需要具有单列的 LinearLayoutManager,对于第二个适配器,我需要 GridLayoutManager 以在 2 列中显示项目。有什么办法吗?

我找到了一个可行的解决方案(在下面添加),方法是GridLayoutManager根据 position 将其设置为和跨度大小。我只是想知道有没有更好的方法来做到这一点。

4

1 回答 1

1

GridLayoutManager根据position设置RecyclerView和跨度大小。

   val layoutManager = GridLayoutManager(requireContext(), 2)
   layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
                override fun getSpanSize(position: Int): Int {
                    if(position==0){
                        return 2  //no of colums it show occupy
                    }
                    return  1
                }
            }
   recyclerView.layoutManager = layoutManager

在这种情况下,如果合并适配器中的位置为 0,则将仅显示 1 列,否则将显示 2 列。

于 2020-05-25T11:35:16.703 回答