/ / Jak wiedzieć, kiedy widok jest faktycznie wyświetlany - android, układ androida, android-widget, android-ui

Jak sprawdzić, czy faktycznie wyświetlany jest widok - Android, układ androida, widget Android, Android-ui

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 № 1

Moż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.