많이 부족하기 때문에 ,, 틀린 부분이 있을 수 있습니다..! 말씀해주세요.! 수정하겠습니다
kotlin 에서 recyclerView를 이용하여
view listing 혹은 클릭하면 다른 액티비티로 이동하는 것이 아니라,
item을 button 형식으로 이용할 때 copy에 대한 개념이 있어야 한다!
1. 코틀린(kotlin)에서 recyclerView를 button 느낌으로 구현한다! (단수선택)
(recyclerView의 item을 button으로 구성하는 것이 아니라 layout으로 하나씩 구현하는데,
adapter에서 그 layout에 대한 click event listener를 생성하여 이용했다.)
2. item의 갯수가 안드로이드의 item의 갯수가 적으면 상관없었는데, 화면을 넘어가서까지 item의 갯수가 많아지면
하나의 item을 클릭했을 때 다른 item이 클릭되는 현상이 발생한다. (단수선택을 이용하고 싶었음)
3. 왜 클릭될까?
4. 문제는 item들이 다른화면으로 recycle되면서 같은 position으로 인식한다는 것..?
== shallow copy가 되서 같은 주소값을 가지게 되는 현상이라고 생각한다..!
== activity에서 각 리사이클러뷰(단수버튼)의 click event listener를 구성해줄때 item들이 shallowCopy로 구성됨
5. deep copy로 바꾸어줘야 다른 주소값을 가지게 되어 단수선택의 recylerView를 이룰 수 있다.
예를 들면
class Cars(cars: List<Car>) {
val cars: List<Car> = cars.map { it.copy() }
}
출처 : https://seosh817.tistory.com/163
위 코드 처럼 데이터들의 리스트들을 각 deepCopy로 item들을 구성하여 준다.
자세한 내용은 https://seosh817.tistory.com/163 에서 참고해주시기 바랍니다.!
'kotlin' 카테고리의 다른 글
[kotlin] databinding, log, Random, Random.nextInt, if, when (0) | 2022.06.14 |
---|---|
kotlin 기초 findViewById, intent, splashActivity, putExtra, setImageResource (0) | 2022.06.13 |