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

notifydatasetchanged가 정확히 어떤 시점에서 호출되는건가요 ?

0 추천
URL로 이미지를 가져오는경우 이미지가 조금이라도 크면 (실험시 127KB) UI가 이상하게 업데이트가 됩니다.

 

먼저 GridView를 이용했고, adapter의 getView 에 이미지를 업로드하는 Aquery를 이용했습니다.

 

해당 GridView는 ScrollView안에 있기 때문에 각 View들의 높이값을 알아낸후 UI를 업데이트하는 것 한개,

그 후 notifydatasetchanged를 하니

정말 희안하개도 간헐적으로 2번째 줄에 첫번째 이미지만 1번째줄의 첫번째 이미지가 나오게 됩니다.

그러니까 .

1(서버등록) 2(서버등록) 3 4 5

6(이상하게 1번이미지가보임) 7 8 9 10

 

그래서 아마도 adapter에서 convertView를 재사용하기 때문에 발생되는거라고 보는데요.

 

여기서 notifydatasetchanged를 제거하면 이런 증상은 사라지게 됩니다.

notifydatasetchanged가 정확히 어떤 시점에서 호출되는건가요 ?

sdk로 소스코드를 추적한결과, 내부의 observer객체가 onChanged하는 순간이고, 이는 Gridview에서 GridView의 자식이 requestLayout을 한결과인데 어느곳에서도 notifydatasetchanged가 호출되는지 알수가없습니다. ㅠㅠㅠ..
Kala (120 포인트) 님이 2017년 3월 27일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...