如何使用RecyclerView-操作LayoutManager(kotlin)

如何使用RecyclerView-操作LayoutManager(kotlin)

情境

如何使用RecyclerView 中我們使用了一段程式碼是用來操作Layout的如下,如果你想要使用格子狀的方式來排列,這邊就可以透過 RecyclerView 的 LayoutManager 來調整。

完整程式碼

如果你想看完整的程式碼,可以從 Github 上面觀看或者直接下載。

程式碼說明

在下面這一段程式碼我們使用了一個LinearLayoutManager,它是負責決定RecyclerView是要水平列表還是垂直列表的關鍵。

val layoutManager = LinearLayoutManager(this)
layoutManager.setOrientation = LinearLayoutManager.VERTICAL
list_view.setLayoutManager = layoutManager

結果就會如下圖所示。

如果你想要變成格狀,就可以透過 GridLayoutManager 來進行調整,透過這個類別的第二個建構子,可以告訴它一列需要幾個元素,在下面的範例,我們將設定 3 個元素為一列。

val layoutManager = new GridLayoutManager(this, 3)
mList.setLayoutManager = layoutManager

程式結果如下圖所示。

你也可以透過 StaggeredGridLayoutManager 來製造類似瀑布流的呈現。

val layoutManager = StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL)
mList.setLayoutManager = layoutManager

讓我們來改變一些參數,例如,在 Adapter 加個幾行調整高度。

override fun onBindViewHolder(holder: ViewHolder, position: Int) {  
    holder.mTextView.text = mData[position]  
    holder.mTextView.layoutParams.height = getRandomIntInRange(750, 75)  
}

private fun getRandomIntInRange(max: Int, min: Int): Int {  
    return mRandom.nextInt(max - min + min) + min  
}

所顯示出來的效果就會如下圖所示。

這樣就是一個簡單的 RecyclerView LayoutManager 範例了。

RecyclerView系列可以參考
如何使用RecyclerView
如何使用RecylerView+CardView
如何使用RecyclerView-控制LayoutManager
如何使用RecyclerView-左右滑刪除+移動位置