情境
在 如何使用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系列可以參考
如何使用RecyclerView
如何使用RecylerView+CardView
如何使用RecyclerView-控制LayoutManager
如何使用RecyclerView-左右滑刪除+移動位置