Android
성능 최적화
수색…
소개
Apps 성능은 사용자 환경의 중요한 요소입니다. UI 스레드에서 작업하는 것과 같은 나쁜 수행 패턴을 피하고 빠르고 반응이 빠른 응용 프로그램을 작성하는 방법을 배우십시오.
ViewHolder 패턴으로 뷰 룩업 저장하기
특히 ListView
에서는 스크롤하는 동안 너무 많은 findViewById()
호출을 수행하여 성능 문제가 발생할 수 있습니다. ViewHolder
패턴을 사용하면 이러한 조회를 저장하고 ListView
성능을 향상시킬 수 있습니다.
목록 항목에 단일 TextView
가 포함 된 경우 ViewHolder
클래스를 만들어 인스턴스를 저장합니다.
static class ViewHolder {
TextView myTextView;
}
목록 항목을 만드는 동안 ViewHolder
객체를 목록 항목에 연결합니다.
public View getView(int position, View convertView, ViewGroup parent) {
Item i = getItem(position);
if(convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item, parent, false);
// Create a new ViewHolder and save the TextView instance
ViewHolder holder = new ViewHolder();
holder.myTextView = (TextView)convertView.findViewById(R.id.my_text_view);
convertView.setTag(holder);
}
// Retrieve the ViewHolder and use the TextView
ViewHolder holder = (ViewHolder)convertView.getTag();
holder.myTextView.setText(i.getText());
return convertView;
}
이 패턴을 사용하면 findViewById()
는 새로운 View
가 생성되고 ListView
가 훨씬 효율적으로 뷰를 재활용 할 수있을 때만 호출됩니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow