Вставлять и выводить представление так же, как это делает транзакция фрагмента - PullRequest
0 голосов
/ 03 сентября 2018

В Android есть хорошая встроенная анимация для фрагментов, которую вы легко можете достичь с помощью 1 строки кода:

transaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

Я хочу достичь того же результата, но в представлении, чтобы анимировать его каждый раз, когда я обновляю его и изменяю его содержимое. Я пробовал с

view.startAnimation(AnimationUtils.loadAnimation(ctx, android.R.anim.slide_out_right));      
view.startAnimation(AnimationUtils.loadAnimation(ctx, android.R.anim.slide_in_left));

Но на изображении воспроизводится только одна анимация, она не дает того же эффекта, когда один слайд выдвигается, а другой (или один и тот же, в данном случае), вы можете ясно видеть, что половина экрана становится белой с мой код, в то время как анимация транзакции фрагмента показывает входящие и исходящие фрагменты. Есть ли способ воспроизвести эти две анимации одновременно?

1 Ответ

0 голосов
/ 03 сентября 2018

Этого можно добиться, используя AnimationSet .

В вашем случае код должен выглядеть так:

    Animation anim1 = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
    Animation anim2 = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);

    AnimationSet animationSet = new AnimationSet(false);
    animationSet.addAnimation(anim1);
    animationSet.addAnimation(anim2);
    animationSet.setDuration(1000); // 1s
    animationSet.setInterpolator(new LinearInterpolator());
    view.startAnimation(animationSet);
...