RecyclerView Animation при выходе из активности - PullRequest
0 голосов
/ 11 декабря 2018

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

РЕДАКТИРОВАТЬ: что-то вроде ниже:
enter image description here

1 Ответ

0 голосов
/ 12 декабря 2018

Вам нужна анимация Slide .

Я использовал ее в одном из своих приложений для Android.Я объясню это с помощью Explode Animation.

Допустим, у вас есть 2 действия A (GridList Activity) и B (DetailActivity).
A -> B

enter image description here

Вы можете достичь этого с помощью этих простых шагов

1.Включить передачу содержимого

Добавьте этот код в style.xml

<item name="android:windowContentTransitions">true</item>

2.Установите значение по умолчанию для входа и выхода из анимации

Напишите этот метод в упражнении А, который будет обрабатывать анимацию для вас.

public void setAnimation()
{
    if(Build.VERSION.SDK_INT>20) {
        Explode explode = new Explode();
        explode.setDuration(1000);
        explode.setInterpolator(new DecelerateInterpolator());
        getWindow().setExitTransition(explode);
        getWindow().setEnterTransition(explode);
    }
}

3.Начните упражнение с намерения

Добавьте это в упражнение A для запуска занятия B. Обратите внимание, что анимация работает только над SDK>20.Так что, если ваш min sdk ниже, вам также придется проверить SDK.Просто используйте этот фрагмент кода, и все будет хорошо.

 public void startActivity(){

    Intent i = new Intent(BlankActivity.this, AllImageActivity.class);
    i.putStringArrayListExtra(MOVIE_LIST, movie.getImages());

      if(Build.VERSION.SDK_INT>20)
       {
           ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(BlankActivity.this);
           startActivity(i,options.toBundle());
       }
       else {
           startActivity(i);
       }
 }

Очень важно

Вы должны поместить setAnimation() перед setContentView(R.layout.yourLayout), иначе анимация не будет работать.Таким образом, Задание A должно выглядеть следующим образом

Activity A extends .... {

   @Override
   protected void onCreate(Bundle savedInstaceState)
   {
       super.onCreate(savedInstaceState);

       setAnimation();

       setContentView(R.layout.image_landing_layout);

       startActivity();  // Use as you wish 
       .......
   }

   public void setAnimation(){

       ..........
   }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...