У меня есть Галерея, которая отображает несколько прокручиваемых кадров, каждая из которых содержит сложный макет. Один из этих элементов макета - это настраиваемый пользовательский вид, который должен анимироваться, когда он отображается, а не просто создан. Поэтому, если я один раз перейду к макету, содержащему этот вид, вернусь назад, а затем снова прокрутите его - он должен сделать свою анимацию, и пользователь должен ее увидеть.
Я не нашел соответствующего обратного вызова для этого. Я уже пробовал переопределить:
OnDraw
OnLayout
onAttachedToWindow
onDisplayHint
onVisibilityChanged
Некоторые из них вообще не вызываются, а некоторые вызываются только тогда, когда Галерея повторно инициализирует представление, а не когда оно действительно отображается.
Спасибо!
Вы можете попробовать переопределить 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
, но он должен вызываться, когда рассматриваемое представление появляется на экране.