У меня есть несколько представлений в FrameLayout. Существует переход, который я написал, где каждый вид имеет пользовательский класс анимации. Во время этого перехода мне нужно довести представление в нижней части z-порядка до фронта. Я делаю это с:Android View.bringToFront() вызывает мерцание
public static void putBackAtFront(ViewGroup v)
{
v.getChildAt(0).bringToFront();
refreshEverything(v);
}
Это вызвано из applyTransformation() моей пользовательской анимации.
т.е.
public class PivotAnimation extends Animation {
private View view;
...
@Override
protected void applyTransformation(float interpolatedTime, Transformation t)
{
...
if(interpolatedTime >= 1.f && isAtBack(view))
{
putBackAtFront(view);
}
...
}
...
}
refreshEverything() вызовы недействительными() и requestLayout() на материнской FrameLayout и всех его детей.
Все работает отлично, за исключением того, что при вызове putBackAtFront() вид, который теперь находится внизу, исчезает для одного кадра перед мгновенным повторным появлением, что приводит к заметному мерцанию. Я также пробовал без вызова refreshEverything(), это не имеет никакого значения.
Я нацеливание Уровень API 7.
Извините, я обновил свой вопрос, чтобы уточнить. Я уже делаю, как вы говорите; putBackAtFront() вызывается только один раз в конце перехода, а не каждый раз. –