본문 바로가기
IT/Android

Kotlin] 안드로이드 Recyclerview 아이템 폭 & 간격 & 구분선 표시

by 깻잎쌈 2020. 4. 17.
반응형

구분선 넣기 

// 구분선 넣기
val dividerItemDecoration =
    DividerItemDecoration(recyclerView.context, LinearLayoutManager(this).orientation)

recyclerView.addItemDecoration(dividerItemDecoration)

 

아이템 간격(폭) 조절

class MyAdapter(private var datas: ArrayList<String>) : RecyclerView.Adapter<MyViewHolder>() {

	override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
    	...
     	return MyViewHolder(view)
     }

     ....

     override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
           ...
         // 간격 설정
         val layoutParams = holder.itemView.layoutParams
         layoutParams.height = 100
         holder.itemView.requestLayout()
      }
}

 

 

 

 

아이템간 간격 조절

 

How to add dividers and spaces between items in RecyclerView?

This is an example of how it could have been done previously in the ListView class, using the divider and dividerHeight parameters:

stackoverflow.com

// 간격 20으로 
val spaceDecoration = VerticalSpaceItemDecoration(20)
recyclerView.addItemDecoration(spaceDecoration)
...

inner class VerticalSpaceItemDecoration(private val verticalSpaceHeight: Int) :
    RecyclerView.ItemDecoration() {

    override fun getItemOffsets(
        outRect: Rect, view: View, parent: RecyclerView,
        state: RecyclerView.State
     ) {
        outRect.bottom = verticalSpaceHeight
     }
}
반응형

댓글