#android
#Android
Вопрос:
Я пытаюсь анимировать пользовательский вид в Android.
Я попытался запустить свой метод в onResume()
, но я получил тот же результат, что и при запуске функции в onCreate()
Где я должен вызвать свою функцию?
Вот моя функция
private void animateAndSetIndexes () {
for (BarView bv : barViews) {
Toast.makeText(this, bv.isShown() " ", Toast.LENGTH_SHORT).show();
if (bv.getLocalVisibleRect(scrollBounds)) {
bv.startAnimation(scale_up);
}
}
}
@Override
protected void onResume() {
super.onResume();
animateAndSetIndexes();
}
Я получаю «ложный» запрос, который означает, что представление еще не добавлено.
Комментарии:
1. Удалите свой toast и используйте logcat вместо этого.
Ответ №1:
Вы могли бы использовать addOnPreDrawListener внутри самого класса пользовательского представления или из Activity / Fragment. При вызове onPreDraw запустите анимацию там. Примечание: Вы захотите удалить прослушиватель предварительного рисования после запуска анимации, чтобы он onPreDraw
не вызывался повторно, и перезапустить анимацию.