메뉴 건너뛰기

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 깜빡거리는 원인

Adapter가 관리하는 Data Set에 데이터가 추가 / 삭제 / 갱신등이 이루어지면 notifyDataSetChanged()를 호출하여 Adapter에게 DataSet이 변경되었으니 갱신하라고 알려줘야 합니다. 이때 Adapter는 변경 된 DataSet을 가지고 View를 갱신하기 위한 작업을 진행할텐데 이때 Adapter는 자신이 가지고 있는 Data Set에서 어떤 Item이 변경되었는지를 알지 못합니다. Adapter는 새로운 Data Set 전부를 ViewHolder와 매칭시키는 작업을 진행하게 되면서 RecyclerView가 깜빡거리는 현상이 발생합니다.


2. 문제해결 1) setHasStableds 호출

해당 함수는 Adapter에게 Data Set의 각 Item들이 자신만의 고유한 값을 가지고 있다는 알려주는 기능을 합니다. 해당 함수를 통해 setHasStableds(true)를 설정해주면 Adapter가 각 Item들을 추적할 수 있고 ViewHolder를 새로 매칭시키는 일이 사라집니다.

 

3. 문제해결 2) 각 Item의 데이터 클래스의 고유값에 해당하는 필드 추가

Adapter가 관리하는 데이터에 해당하는 데이터 클래스의 각 Item을 식별할 수 있는 필드값을 멤버변수로 가지고 있어야 합니다. 

4. 문제해결 3) Adapter의 getItemId() 재정의

    @Override
    public long getItemId(int position)
    {
        return contentItems.get(position).getContentSequence();
    }

 

▼ 다음과 같이 Adapter의 getItemId() 함수를 재정의하여 인자로 넘어오는 위치에 해당하는 Item의 고유값을 return 해주도록 재정의합니다. 


List of Articles
번호 제목 날짜 조회 수
157 [하이브리드앱] 링크를 웹뷰가 아닌 새로운 브라우저에서 열기 2021.09.30 293
156 간단한 mp3 플레이어 만들기 , 음악넣기 , 노래재생 file 2016.06.07 14626
155 구글맵 snippet을 두줄이상으로 구현하기 file 2020.12.14 481
154 구글맵으로 GPS 현재위치 실시간 연동하기 file 2020.12.14 2458
153 내가 입력한 글자 Toast로 나오게 하기 file 2015.07.26 6896
152 네트워크 상태 변화 감지하기(BroadcastReceiver 사용) 2015.07.16 9935
151 네트워크 연결 상태 및 3G/WIFI 연결상태 체크하기 2016.03.18 7131
150 네트워크를 통해 받은 이미지를 파일로 저장하고, 크기 조절해서 불러오기 2015.07.16 6155
149 노티피케이션(Notification) 사용법 / Notification.Builder , NotificationManager file 2016.06.10 13470
148 다운로드 매니저(DownloadManager)에 대해 알아보자 file 2015.07.01 9246
147 맵에 오버레이 추가하여 아이템 넣어보기 2014.08.28 6474
146 문자를 음성으로 변환(TTS)에 대해 알아보자 file 2015.07.01 7768
145 버튼 누르면 이미지 바꾸기 file 2015.07.26 6613
144 버튼 생성, 이벤트 처리 file 2021.03.31 236
143 버튼 이벤트 file 2021.03.31 205
142 버튼 이벤트 추가하기 file 2021.03.31 191
141 버튼(Button) 패딩 제거 2016.06.10 7651
140 블루투스 및 비콘 관련 정리 2015.07.26 10828
139 블루투스(Bluetooth) 통신에 대해 알아보자 file 2015.07.01 7983
138 블루투스(Bluetooth) 통신에 대해 알아보자 file 2015.07.26 14048
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved