2014-01-22 2 views
2

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을 사용하도록 설정하십시오. 당신이 카드 목록의 보류를 유지 한 경우

+0

카드를 사용하는 대신 사용자 정의 레이아웃을 만드는 경우에도 여전히 CardScrollView를 사용할 수 있습니까? 아마도 카드가보기로 올바르게 변환 되었기 때문에 대답이 '예'라고 생각하십니까? 그냥 확인하고 싶었어. 감사! – Synergy807

+0

예, 작동합니다. 제공 한보기 레이아웃을 사용합니다. – johnarleyburns

답변

관련 문제