CardScrollView
에서 카드를 선택하면 onItemSelected()
메서드가 호출됩니다. 그러나 일단이 카드에 이미지를 추가하는 방법을 결정할 수는 없습니다. 항목을 선택하면 내가 확인 어댑터 getView()
에서 다음카드를 선택하면 카드에 이미지를 다운로드하고 추가하는 방법은 무엇입니까?
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == mSelectedPosition)
return;
mSelectedPosition = position;
if (mCardScrollView != null)
mCardScrollView.updateViews(true);
}
, 그렇다면 비동기 적 이미지로드 : 지금, 나는 updateViews(true)
을 부르는 KLUGE 콜백 메커니즘을했습니다
if (mCardScrollView != null && mCardScrollView.getSelectedItemPosition() == pos) {
String url = String.format(Board.THUMBNAIL_FORMAT, board, tim);
CardImageLoader.loadCardImage(card, Card.ImageLayout.FULL, url, mCardScrollView);
}
을
CardImageLoader
파일을 다운로드 한 후 을 updateViews()
으로 호출하면 다운로드가 성공한 후 마지막으로 card.addImage()
이 호출되고 이미지가 표시됩니다.
이 방법은 효과적이지만 때때로 느려지거나 때로는 반응이 느려질 수 있습니다. 그것을 더 잘하는 방법?
업데이트 : CardScrollView에서 이미지가있는 카드 목록을로드해야 할 때 카드를 사용하지 마십시오. 대신 사용자 정의 레이아웃을 사용하여 카드를 에뮬레이션하고 표준 이미지 로더를 사용하여로드를 수행하십시오. 이것은 매우 긴 목록에서도 훨씬 잘 작동합니다.
Google 카드 레이아웃 XML을 사용하도록 설정하십시오. 당신이 카드 목록의 보류를 유지 한 경우
카드를 사용하는 대신 사용자 정의 레이아웃을 만드는 경우에도 여전히 CardScrollView를 사용할 수 있습니까? 아마도 카드가보기로 올바르게 변환 되었기 때문에 대답이 '예'라고 생각하십니까? 그냥 확인하고 싶었어. 감사! – Synergy807
예, 작동합니다. 제공 한보기 레이아웃을 사용합니다. – johnarleyburns