멜팅비의 개발 공부

[Android/Kotlin] RecyclerView Drag&Drop 구현하기2 - GridLayout 본문

개발 공부/[Android 개발]

[Android/Kotlin] RecyclerView Drag&Drop 구현하기2 - GridLayout

멜팅비 2021. 10. 7. 00:49
반응형

지난번에 이어 GridLayout을 쓰는 RecyclerView에서 Drag&Drop 기능을 구현하는 방법을 정리하려고 한다.

LinearLayout을 사용할 때와 동일하게 ItemTouchHelper를 사용하면 되고,

LinearLayout과 동일한 방법으로 Adapter, item Layout을 만들어주고 연결해주면 된다.

 

ItemTouchHelper를 참고하려면 이전 글에서 확인 할 수 있다.

2021.09.23 - [개발 공부/[Android 개발]] - [Android/Kotlin] RecyclerView Drag&Drop, Swipe 구현하기

 

이때, RecyclerView의 LayoutManager는 GridLayoutManager로 설정하고, spanCount로 한 줄에 들어갈 Item의 수를 설정해준다.

한 줄에 4개씩 보여주길 원하면 아래와 같이 설정하면 된다.

// GridLayout RecyclerView 설정
        val adapter = GridListViewAdapter(list)
        recyclerView.layoutManager = GridLayoutManager(this, 4)
        val callback = ItemTouchHelperCallback(adapter)
        val touchHelper = ItemTouchHelper(callback)
        touchHelper.attachToRecyclerView(recyclerView)
        recyclerView.adapter = adapter
        adapter.startDrag(object : GridListViewAdapter.OnStartDragListener {
            override fun onStartDrag(viewHolder: RecyclerView.ViewHolder) {
                touchHelper.startDrag(viewHolder)
            }
        })

 

 

 

반응형
Comments