Mam galerię, która wyświetla wieleprzewijalne ramki, każda zawierająca złożony układ. Jednym z tych elementów układu jest niestandardowy widok podobny do miernika, który powinien animować za każdym razem, gdy zostanie wyświetlony - a nie tylko stworzony. Więc jeśli przewiń raz do układu zawierającego ten widok, to wróć, a następnie przewiń tam ponownie - powinien wykonać animację, a użytkownik powinien go zobaczyć.
Nie znalazłem odpowiedniego wywołania zwrotnego. To, co już wypróbowałem, jest nadrzędne:
onDraw
onLayout
onAttachedToWindow
onDisplayHint
onVisibilityChanged
Niektóre z nich nie są w ogóle wywoływane, a niektóre są wywoływane tylko wtedy, gdy Galeria ponownie inicjuje widok - a nie kiedy jest faktycznie wyświetlany.
Dziękuję z góry!
Odpowiedzi:
1 dla odpowiedzi № 1Możesz spróbować przesłonić getView
na adapterze galerii:
@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;
}
Nie ma wyraźnej umowy na kiedy getView
jest wywoływany, ale należy go wywoływać, gdy dany widok pojawi się na ekranie.