본문 바로가기

개발/android

리사이클러뷰, 레이아웃매니저, 스냅헬퍼, 아이템 데코레이션RecyclerView LayoutManager checkLayoutParams SnapHelper ItemDecoration

반응형

recyclerview의 layoutmanager에서 전체 화면 대비 특정 아이템 크기를 만들 고 싶을 때,

rv.layoutManager = object : LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,false) {
            override fun checkLayoutParams(lp: RecyclerView.LayoutParams): Boolean { // force height of viewHolder here, this will override layout_height from xml
                lp.width = (width - (resources.getDimension(R.dimen.padding_default) * 10)).toInt()
                return true
            }
        }

 

딱딱 끊어지는 터치감은 

val snapHelper = PagerSnapHelper()
        snapHelper.attachToRecyclerView(rv)

 

각 아이템의 마진값은 

rv.addItemDecoration(HorizontalSpaceDecoration(resources.getDimension(R.dimen.padding_default).toInt()))

으로 관리한다

반응형