위해 호출 될 때 확인 I이 (ListView를 채 웁니다) 내 어댑터의 방법의 getView에 다음 코드ListView에,의 getView가 마지막으로
public View getView(int position, View parent, ViewGroup root) {
View view = LayoutInflater.from(getActivity()).inflate(R.layout.my_layout, null);
ImageView imageView = view.findViewById(R.id.myImageView);
String address = addresses[position];
MyNetworkLibrary.loadAndSetImage(address, imageView);
return view;
}
ListView에의 세포가 이미지 뷰를 가지고있는 그들 원격 이미지를로드하십시오.
메서드 MyNetworkLibrary.loadAndSetImage는 원격 이미지를 다운로드하고 응답을 받으면이를 ImageView에 설정합니다. 문제는 getView 메소드가 ListView의 각 행에 대해 두 번 이상 호출된다는 것입니다. 이미지를 캐시에 저장하지 않아도 내 앱이 각 행에 둘 이상의 요청을 수행하기 때문입니다.
getView가 마지막으로 한 행에 대해 호출 될 때를 알 수있는 방법이 있습니까? 아니면 더 나은 솔루션에 대해 생각하십니까?
단순화 할 게으른 목록을 사용하려고? – nKn
width = match_parent, height = wrap_content – Massimo
getView는 행이 표시 될 때마다 호출되므로 사용자가 위아래로 스크롤하면 해당 행에 대한 getView의 "마지막 호출"이 없습니다. "이미지가 캐시 ""왜 이미지를 캐싱하지 않습니까? 반대쪽은 퍼포먼스에 좋지 않은 getView에 대한 모든 호출에 대한 네트워크 호출을 의미합니다 ... – 2Dee