마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

onbindviewholder에서 콜백리스너

0 추천
A액티비티에서  구조가

뷰페이저

텍스트뷰

이렇게되있습니다만 뷰페이저는 이미지만 있구요 텍스트뷰는 슬라이드가 아닌 고정이어야되서,

뷰페이저 bindviewholder에서 콜백리스너를 받아서 텍스트뷰에 뿌려주려고합니다

문제는 2번째에서 3번째로 넘기면 콜백이 onbindviewhodler callback onbindviewhodler callback

이렇게 두번 호출을 해버려서 4번째 애가 나오더라구요 다른애도 2번째에서 3번째넘기면 똑같은 현상이구요 왜그런걸까요..
수원통학러 (3,570 포인트) 님이 2022년 2월 4일 질문
해당 증상은 뷰페이저가 성능향상을 위해 앞뒤의 페이지를 미리 준비하기 때문입니다.

1개의 답변

0 추천
뷰페이저의 콜백을 사용하세요. 페이지가 바뀔 때 텍스트를 업데이트 해주면 될 것 같은데요.

https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.OnPageChangeCallback

포지션이 파라미터로 넘어오므로, 데이터 소스나 어댑터에 있는 아이템에서 텍스트를 가져올 수 있을 겁니다.
spark (227,530 포인트) 님이 2022년 2월 5일 답변
spark님이 2022년 2월 5일 수정
...