ItemDecoration ViewType에 따라 다른 divider 주기
6775 단어 androiditemDecorationandroid
class Decoration(
context: Context,
resId: Int,
val paddingLeft: Int,
val paddingRight: Int
) : RecyclerView.ItemDecoration() {
private var mDivider: Drawable? = null
init {
mDivider = ContextCompat.getDrawable(context, resId)
}
override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
val left = parent.paddingLeft + paddingLeft
val right = parent.width - parent.paddingRight - paddingRight
val childCount = parent.childCount
for (i in 0 until childCount) {
val child = parent.getChildAt(i)
val position = parent.getChildAdapterPosition(child)
val viewType = parent.adapter?.getItemViewType(position) //뷰타입 체크
//뷰타입이 특정 뷰 타입일 때만 데코레이션 넣기 이런게 가능함.
if (viewType == ViewType.myType.type) {
val params = child.layoutParams as RecyclerView.LayoutParams
val top = child.bottom + params.bottomMargin
val bottom = top + (mDivider?.intrinsicHeight ?: 0)
mDivider?.let {
it.setBounds(left, top, right, bottom)
it.draw(c)
}
}
}
}
}
enum class ViewType(val type: Int) {
myType(0)
}
Author And Source
이 문제에 관하여(ItemDecoration ViewType에 따라 다른 divider 주기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nagosooo/ItemDecoration-ViewType에-따라-다른-divider-주기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)