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

Listview의 getView에 관하여

0 추천
Listview의 getView가 Listview에 변화가 있을 때 뿐만 아니라 Listview와 같이 표시되는 Layout에 어떤 변화라도 있으면 무조건 호출이 되는데요

그 때문에 같은 화면 내에 있는 Listview와 전혀 상관 없는 EditText에 글자만 입력해도 getView가 호출되는 바람에 글자 입력이 상당히 버벅대네요

Listview에 변화가 있을 때만 호출되도록 할 수는 없나요

또,

Holder를 사용해서 Listview의 성능을 향상시키는 방법을 적용하였는데 Custom Adapter를 사용하여 한 row당 Component가 많고 내부에 Custom Layout을 포함한 Layout를 Listview에 추가하니 Holder를 사용하나 안하나 속도가 굉장히 느리네요

이 부분에 대해서 Listview에 추가할 row의 항목을 줄이는 것 외에 다른 성능향상 방법은 없는지 궁금합니다.
appa (3,380 포인트) 님이 2013년 2월 22일 질문

1개의 답변

0 추천
 
채택된 답변
하나로 처리할 수 있는 경우 컴포넌트 자체의 개수를 줄이거나

 

레이아웃을 weight 로 배치하셨으면 다중으로 겹쳐서 weight를 사용하지 않는 쪽으로 설계하심이 좋을듯 합니다.

퍼즐맞추기처럼 좀 골치 아프긴 한데 바깥쪽레이아웃만 weight로 배치하시고

내부컴포넌트들은 gravity로 자리잡게 하시면 weight 사용남발을 줄일 수 있습니다.
Noizbuster (11,970 포인트) 님이 2013년 2월 24일 답변
appa님이 2013년 2월 25일 채택됨
답변 감사합니다. 근데 weight를 지워봐도 속도는 그대로네요. 뭔가 다른 문제가 있는 것 같습니다. 좀 더 연구해 봐야 겠네요.
...