안드로이드 목록 어댑터의 getView 메서드에 대한 작업을 덜 만들고 싶습니다. ViewGroup이 getView 메소드 대신 뷰를 업데이트하도록함으로써 스크롤 속도를 빠르게 할 수 있다는 것을 읽었습니다. 내가 여기에이 개념을 이해하고 도움을 필요로하는 것은 내가 지금까지 무엇을 가지고 :안드로이드 어댑터 getView 더 나은 decoupling with viewGroup
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyViewGroup myViewGroup;
if (convertView == null) {
myViewGroup = (MyViewGroup) LayoutInflater.from(context)
.inflate(R.layout.banana_phone, parent, false);
} else {
myViewGroup = (MyViewGroup) convertView;
}
InfoObject info = getItem(position);
myViewGroup.update(info); //how does this part work ? this is synchrounous so getView has to wait, doesn't it ?
return myViewGroup;
}
나는이 site
에서이 아이디어를 가지고 그래서 내 문제는 내가의 getView 대기를시키는없이 뷰 그룹 업데이트를해야합니까 방법이다. 나는 위의 구현에서 viewgroup이 업데이트 될 때까지 기다릴 것이라고 믿는다. 그래서 이것은 listview를 여전히 느리게 만들 것입니다. 나는 커스텀 뷰 그룹이 어떻게 보이는지에 대한 예제를 원한다.
ViewGroup을 확장하고 사용자 정의보기 그룹을 구조화하는 방법을 이해하지 못하는 것처럼 ListView를 확장 한 후에 MyViewGroup이 어떻게 생겼는지 예를 들어 줄 수 있습니까?
* getView를 대기시키지 않고 viewGroup 업데이트 * ... 복잡합니다 ... * 올바른? * 올바른 ...이 코드가 뷰를 재사용한다는 것을 기억합니다. * .update *를 " 지연된 "어떻게 든 데이터가 오래되었다는 문제에 직면 할 수 있습니다 (myViewGroup이 다른 InfoObject에서 업데이트되어야 함). 구현 가능한 좋은 예제는 이미지 로더의 코드 안에 숨겨져 있습니다 ... – Selvin
그는 마치 모든 일반적으로 "getView()"에있는 ViewGroup으로 업데이트합니다. 그것은 속도를 높이거나 ListView를 느리게하지 않습니다. 한 클래스에서 다른 클래스로 작업을 옮기는 것입니다. – DeeV
기본적으로 어댑터는 MyViewGroup에 대해서만 알고 있어야합니다. 뷰 요소가 MyViewGroup 안에 있는지 알 필요가 없으므로 변경하기가 더 쉽습니다. – DeeV