2014-10-16 2 views
1

나는ViewHolder는 어떻게 어댑터를 최적화 할 수 있습니까?

구글의 데모 있도록 (List14 패키지 com.example.android.apis.view.), 사용자 정의 어댑터는 일반적으로 내부 정적 클래스 ViewHolder을 소유하고, 여러 번 보았다 그리고 나는이 방법은 코드 효율성을 최적화 할 수 있다고 들었습니다 .

ViewHolder이 코드를 최적화 할 수있는 이유를 알려주십시오.

답변

1

ViewHolder 패턴은 태그 객체 안에 각보기를 저장합니다. 이렇게하면 getView가 호출 될 때마다 findViewById을 호출하는 것을 피할 수 있지만 convertView가 null이 아닌 경우 태그를 검색하면됩니다.

편집 : corretcly @jqpubliq

findViewById를이 바람직하다 피하는 주요 이유로 지적

는 그것이 을 찾을 때까지이에 호출하는 뷰 그룹의 아이 뷰를 통과한다는 것입니다 제공된 ID를 가진 뷰. 즉,이 호출이 가 더 복잡 귀하의 의견은 부록으로

+0

있습니다 더 비싼, findViewById를이 바람직하다 피하는 중요한 이유는 그것이이 발견 될 때까지이에 호출하는 뷰 그룹의 아이 뷰를 통과한다는 것입니다 점진적으로 얻는 의미 제공된 ID로보기. 즉,이 호출이 점점 복잡해지면 점차 더 비싸게됩니다. – jqpubliq

+0

감사합니다 @jqpubliq – Blackbelt

관련 문제