시리즈 전체보기
아이템 세로 간격 수정
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package kr.co.vividnext.sodalive.common
|
||||
|
||||
import android.graphics.Rect
|
||||
import android.view.View
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
class DifferentSpacingItemDecoration(
|
||||
private val spanCount: Int,
|
||||
private val horizontalSpacing: Int,
|
||||
private val verticalSpacing: Int,
|
||||
private val includeEdge: Boolean
|
||||
) : RecyclerView.ItemDecoration() {
|
||||
override fun getItemOffsets(
|
||||
outRect: Rect,
|
||||
view: View,
|
||||
parent: RecyclerView,
|
||||
state: RecyclerView.State
|
||||
) {
|
||||
val position = parent.getChildAdapterPosition(view) // 아이템의 위치
|
||||
val column = position % spanCount // 아이템의 열 위치
|
||||
|
||||
if (includeEdge) {
|
||||
outRect.left = horizontalSpacing - column * horizontalSpacing / spanCount
|
||||
outRect.right = (column + 1) * horizontalSpacing / spanCount
|
||||
|
||||
if (position < spanCount) {
|
||||
outRect.top = verticalSpacing
|
||||
}
|
||||
outRect.bottom = verticalSpacing
|
||||
} else {
|
||||
outRect.left = column * horizontalSpacing / spanCount
|
||||
outRect.right = horizontalSpacing - (column + 1) * horizontalSpacing / spanCount
|
||||
|
||||
if (position >= spanCount) {
|
||||
outRect.top = verticalSpacing
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user