ItemTouchHelper에서 RecyclerView 교체
이것은 Kotlin이 안드로이드를 개발하는 초보적인 내용이다.
긴 클릭으로 RecyclerView 내의 View를 교체하고 싶을 때의 한 가지 방법으로 Item Touch Helper를 사용하면 간단하게 구현할 수 있습니다!말하고 싶어요.↓ 같은 인상.
이렇게 배열하다
드래그
손가락을 놓자마자 바꾸다
배포 보기
RecyclerView 및 GridLayoutManager를 사용하여 정렬합니다.
// 30個のViewを作成
val data = ArrayList<String>()
for (number in 1..30) data.add(number.toString())
// GridLayoutManagerで横幅を5に
val recycler: RecyclerView = findViewById(R.id.recycler)
val adapter = Adapter(data)
recycler.adapter = adapter
recycler.layoutManager = GridLayoutManager(this, 5)
여기까지.30개의 뷰가 구성되어 있습니다.
ItemTouchHelper에서 교체
긴 헤드가 배열 정도를 변경하는 경우 ItemTouchHelper간단한 계산기를 사용하여 쉽게 실현할 수 있다.
val touchHelper = ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(
ItemTouchHelper.UP or ItemTouchHelper.DOWN
or ItemTouchHelper.RIGHT or ItemTouchHelper.LEFT, 0) {
// ここで指定した方向にのみドラッグ可能
override fun onMove(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder): Boolean {
val from = viewHolder.adapterPosition
val to = target.adapterPosition
val data = adapter.data.removeAt(from)
adapter.data.add(to, data)
adapter.notifyItemMoved(from, to)
return true
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder?, direction: Int) {
// スワイプで削除する場合はここ
}
})
touchHelper.attachToRecyclerView(recycler)
recycler.addItemDecoration(touchHelper)
// ここを忘れると動かないので注意
이것만 추가하면 드래그를 통해 쉽게 이동할 수 있습니다!
Reference
이 문제에 관하여(ItemTouchHelper에서 RecyclerView 교체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/wantan/items/844d352f9d0e3e97eab9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)