2011-03-30 3 views
1

각각 복잡한 레이아웃을 포함하는 여러 스크롤 가능한 프레임을 표시하는 갤러리가 있습니다. 이러한 레이아웃 요소 중 하나는 계기와 같은 사용자 지정보기로서 표시 될 때마다 애니메이션을 만들어야합니다. 그래서이 뷰가 포함 된 레이아웃으로 한 번 스크롤 한 다음 다시 돌아가서 다시 스크롤하면 애니메이션이 실행되고 사용자는이를보아야합니다.보기가 실제로 표시되는시기를 알 수있는 방법

적절한 콜백을 찾지 못했습니다. 내가 이미 해봤 것은 무시입니다 :

된 onDraw

onLayout onAttachedToWindow

onDisplayHint

그들 중 일부는 전혀 호출되지 않습니다

을 onVisibilityChanged, 일부는 갤러리가 실제로 다시 표시 될 때 호출되는 것이 아니라 갤러리가 뷰를 다시 초기화 할 때만 호출됩니다.

감사합니다. getView를 호출 할 때에 대한 명시 적 계약이 없습니다

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = super.getView(position, convertView, parent); 
    /* trigger your animation on this view */ 
    return view; 
} 

있지만 문제의보기가 화면에 표시 할 때 호출해야합니다

답변

1

당신은 갤러리의 어댑터 getView을 무시 시도 할 수 있습니다.

+0

아니야 - 갤러리에는 과거보기를 캐시하는 방법이 있으므로이 함수는 표시를 나타내지 않습니다. 어댑터에서 뷰를 제공하기 위해 이미이 메서드를 재정의 했으므로이를 확인했습니다. – SirKnigget

+0

보기가 표시 될 때 주위에 강한 구별이 없을 수 있습니다. –

관련 문제