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

listView adapter가 2번 불러지는 문제에 대해..

0 추천
해외 사이트를 뒤져보니

 

http://stackoverflow.com/questions/5230155/android-getview-called-twice-in-custom-adapter

 

2번 불리는건 정상적인 현상이라고 나오더군요.. 근데 현재 커스텀 adapter 구조상 2번 불려서는 안되는 상황입니다.. ㅠ

(아래 댓글의 superView는 실행하면 에러가 나는군요.)

 

해외에서도 방법이 없다는 얘기들 뿐이지만.. 혹시나 해서 질문 올려봅니다..
zent (1,360 포인트) 님이 2014년 3월 6일 질문

2개의 답변

+1 추천
안드로이드 개발 문서에는 getView() 가 호출되는 회수에 대해 아무 언급이 없습니다.

폰에 따라 2번이 아니라 그 이상도 호출될 수 있습니다.

여러번 호출되도 문제가 없도록 구조를 수정하셔야 합니다.
익명사용자 님이 2014년 3월 6일 답변
답변 감사드립니다..

역시 1번만 불러와지도록 만들 수는 없는건가 보군요.. ㅠ
+1 추천
리스트뷰의 크기가 MATCH MATCH가 아니면 GETVIEW를 여러번 호출하게되어있습니다.

 

이것은 기본적으로 리스트뷰가 가변적인 길이를 계산해서 뷰를 보여주기 때문이죠
건방진프로그래머 (26,630 포인트) 님이 2014년 3월 6일 답변
답변 감사드립니다. 근데 match match가 아니어도 1번만 불러오는 경우도 있는거 같습니다.

실제로 제 앱의 한 activity에 listview가 3개 배치되어있는데

android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"

똑같은 위의 조건으로도(나머지 속성도 id빼고 다 같습니다.) 하나만 2번 불러와지고 나머지 2개는 한번만 불러와지더군요..
...