簡體   English   中英

RecyclerView GridLayoutManager:每個項目計數的單獨布局

[英]RecyclerView GridLayoutManager: Individual layout per item count

我的GridLayoutManager需要一些幫助。

如果我有一個項目,它應該在中間正常顯示。
對於兩個項目,這些項目應該彼此相鄰。 有2個項目的示例從3個到4個項目應顯示為正方形。 3項 示例4項示例

如果我是對的,那么spanCount 2就應該是這種情況。但是,如果有5個項目(所以連續三個),那就成問題了

從五個項目開始(向上)應分別為3 個項目, 其中 包含5個項目 。如果最下面一行的項目也位於中間,那將特別好



我希望有人能幫助我,並提前感謝

您可以通過子類化GridLayoutManager動態設置跨度,如下所示:

class CustomGridLayoutManager(context: Context) : GridLayoutManager(context, 2) {

    override fun onLayoutChildren(recycler: RecyclerView.Recycler?, state: RecyclerView.State?) {
        updateSpanCount()
        super.onLayoutChildren(recycler, state)
    }

    private fun updateSpanCount() {
        val colCount = if (childCount <= 4) {
            2
        } else {
            3
        }
        this.spanCount = colCount
    }
}

如果您想將元素居中放在最后一行,則通過GridLayoutManager進行操作會有些GridLayoutManager 為此,您可能需要檢查FlexboxLayout 這是一個由Google自己開發的庫,具有在HTML5 / CSS世界中常見的flex box模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM