Анимировать представление во фрагменте перед onDestroy или OnDestroyView

Я не нашел ничего похожего. Как мне анимировать представление до того, как будут вызваны onDestroy и onDestroyView super?

я пробовал с

@Override
public void onDestroyView() {
    Animation fadeOut = AnimationUtils.loadAnimation(getContext(), R.anim.fade_out_fast);
    mBackgroundView.setAnimation(fadeOut);
    super.onDestroyView();
}

Таким образом, super.onDestroyView немедленно останавливает анимацию.

Установка слушателя на fadeOut, а затем вызов MyFrag.super.onDestroyView() onAnimationEnd() тоже не сработали, потому что super должен вызываться внутри самого метода.

Как мне это сделать? Заранее спасибо!


person Matteo    schedule 11.05.2016    source источник
comment
Я думаю, что onDestroyView() слишком поздно для того, чего вы пытаетесь достичь. Вы пробовали использовать метод onPause() фрагмента?   -  person Ariel Carbonaro    schedule 12.05.2016
comment
Да, спасибо.. уже попробовал и все равно ничего   -  person Matteo    schedule 12.05.2016


Ответы (1)


Я в конце концов добился этого.

Работа выполняется интерфейсом обратного вызова и кнопкой onBackPressed из Activity.

public interface UiCallback {
    void update();
}

В деятельности:

UiCallback mUiCallbackInstance = new UiCallback() {
    public void update( /* Remove the fragment from stack here */)
}

@Override
public void onBackPressed() {
    mFragmentInstance.remove(mUiCallbackInstance)
}

Во фрагменте:

public void remove(UiCallback callback) {
    Animation anim = AnimationUtils.loadAnimation(...);
    anim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationEnd(Animation animation) {
            callback.update();
        }
    })
    // start animation
}
person Matteo    schedule 12.05.2016