Android ViewPropertyAnimator молча пропускает альфа-анимацию при большом просмотре
У меня есть представление списка, которое заполняется данными из веб-запроса. В ожидании ответа я накладываю другой вид сверху (mNoDataLayout
) с индикатором выполнения и другой информацией, сообщающей пользователю, что данные поступают. Как только данные поступят, я хочу исчезнуть в режиме наложения, чтобы открыть представление заполненного списка:
mNoDataLayout.animate().setDuration(300).alpha(0.f);
Проблема в том, что эта анимация не всегда запускается. Иногда работает, иногда нет.
1 ответ
Исправление должно было установить высоту моего вида наложения mNoDataLayout
на высоту экрана. Ранее у меня было установлено match_parent
Это означало, что когда поступало много данных списка, представление списка могло быть очень большим, что приводило к тому, что представление наложения было очень большим.
После того, как я установил размер моего оверлея, альфа-анимация начала работать без каких-либо других изменений.
Возможно, Android тихо убивает альфа-анимацию на очень больших экранах, чтобы оптимизировать скорость заполнения рендеринга. Но так как эти пиксели в любом случае находятся за пределами экрана, это, вероятно, подразумевает, что он также не выполняет никаких операций с ножницами / отбраковкой, что кажется странным.
DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
ViewGroup.LayoutParams layoutParams = mNoDataLayout.getLayoutParams();
layoutParams.height = displayMetrics.heightPixels;
mNoDataLayout.setLayoutParams(layoutParams);
Это было на Samsung Galaxy Note 4.