메뉴 건너뛰기

?

단축키

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
번호 제목 날짜 조회 수
257 안드로이드 php 로 mysql json 파싱 하기 2014.08.28 9407
256 FTPClient 를이용하여 ftp상 서버에서 데이터 다운로드 편 2014.08.28 9853
255 XmlPullParser 를이용하여 데이터 가져와보기!! 2014.08.28 7221
254 FTPClient 를이용한 데이터 업로드 하기 2014.08.28 6366
253 클래스나눠서 xml 파싱과 FTP를이용하여 안드로이드에서 활용하기 2014.08.28 6180
252 전화 인텐트와 나의 전화 번호가져오기 2014.08.28 6312
251 사진찍기 및 앨범 에서 사진 가져오기!!! 2014.08.28 13889
250 안드로이드 웹에서 이미지 불러오기!! 2014.08.28 7053
249 맵에 오버레이 추가하여 아이템 넣어보기 2014.08.28 6474
248 실행중인 Service 확인하기 2014.08.28 6595
247 안드로이드 이미지 효율적으로 회전 해보기 2014.08.28 5995
246 WIFI 신호세기 강도 측정하기 2014.08.28 11243
245 WebView 줌 컨트롤러 가리기 2014.08.28 6316
244 ImageVeiw의 현재 리소스 비교하기 2014.08.28 6750
243 HTML5 Speech Input (음성인식) API 2014.09.04 6454
242 HTML5 시작하기 file 2014.09.04 5660
241 CSS3 Rounded Corner, 그림자 효과 사용하기 file 2014.09.04 6760
240 JavaScript 맛보기 file 2014.09.04 6589
239 HTML5로 비디오 보여주기 Video Tag file 2014.09.04 7061
238 HTML5로 나만의 비디오 플레이어 스킨 만들기 -1- CSS file 2014.09.04 6453
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved