Как узнать, когда представление действительно отображается

1

У меня есть Галерея, которая отображает несколько прокручиваемых кадров, каждая из которых содержит сложный макет. Один из этих элементов макета - это настраиваемый пользовательский вид, который должен анимироваться, когда он отображается, а не просто создан. Поэтому, если я один раз перейду к макету, содержащему этот вид, вернусь назад, а затем снова прокрутите его - он должен сделать свою анимацию, и пользователь должен ее увидеть.

Я не нашел соответствующего обратного вызова для этого. Я уже пробовал переопределить:

OnDraw

OnLayout

onAttachedToWindow

onDisplayHint

onVisibilityChanged

Некоторые из них вообще не вызываются, а некоторые вызываются только тогда, когда Галерея повторно инициализирует представление, а не когда оно действительно отображается.

Спасибо!

Теги:
android-layout
android-widget
android-ui

1 ответ

1

Вы можете попробовать переопределить getView в адаптере Gallery:

@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;
}

Не существует явного контракта, когда вызывается getView, но он должен вызываться, когда рассматриваемое представление появляется на экране.

  • 0
    Это не так - в Gallery есть способ кэширования прошлых просмотров, поэтому эта функция не отображает отображение. Я уже переопределил это, чтобы предоставить представления от моего Адаптера, таким образом, я проверил это.
  • 0
    Может случиться так, что при отображении представления нет сильных различий.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню