Я пробовал несколько способов скрыть представление, а затем удалить его из родительского макета:
- Вызов альфа-анимации затухания с последующим вызовом setVisibility(GONE);
- Вызов альфа-анимации затухания с последующим вызовом setVisibility(GONE) внутри AnimationListener
- Вызовите анимацию альфа-затухания с последующим удалением родительского макета внутри AnimationListener.
Каждый раз получающаяся анимация терпит неудачу --- вид дважды исчезает с экрана. Альфа-анимация затухания работает нормально, но когда вы меняете видимость или удаляете ее из родительского представления, она снова быстро появляется снова, прежде чем исчезнуть во второй раз. Результатом является неожиданная дрожащая анимация.
Пример кода:
Animation animation = AnimationUtils.loadAnimation(AddTaskActivity.this,
R.anim.fade_out);
final LinearLayout parentView = (LinearLayout) findViewById(R.id.addtask_root);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
parentView.post(new Runnable() {
public void run() {
parentView.removeView(test);
}
});
}
Эта анимация не работает — тестовое представление дважды исчезает из поля зрения.
Любые идеи?