1

Я тестировал переход общего элемента на Lollipop. У меня есть recyclerview, который загружает некоторые карты и один щелчок карты расширяется до его деталей в следующем действии.Задержка перехода общего элемента на полную анимацию в стиле статистики

Я установил эффект пульсации и StateListAnimator на карте. Но это не видно, потому что переход начинается до завершения этих эффектов.

Есть ли способ отсрочить переход так, чтобы он мог дождаться завершения статичного аниматора и рябь?

Вот код, я использую

ActivityOptions options = null; 
     if (Utilities.isLollipop()) { 
      options = ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(view, "hero_view"), Pair.create((View) fab, "fab")); 
startActivity(detailIntent, options.toBundle()); 
     } 

Заранее спасибо

+0

Вы действительно хотите, чтобы задержать переход активности, как это? Пользователь может подумать, что задержка отстает. –

+0

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

+0

Я не думаю, что ни одно из стандартных приложений Google (например, Google Music, Newsstand и т. Д.) Не делает ничего подобного. Вы сравнили, как ваше приложение работает с другими приложениями? Просто интересуюсь. –

ответ

0

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

Работа вокруг была 1. удалите аниматор состояния и добавьте его в качестве аниматора в методе onclick. 2. Использовано Обработчика на сообщение отсроченного вызова активности

new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 

          Intent i=new Intent(SearxhJobs.this,JobsTypes.class); 
          startActivity(i); 
         } 
        }, 200); 

P.S- Я в конечном итоге удаление эффекта, как это было не очень интуитивным.

0

Путь, который может помочь некоторым, что уже есть настройки переходов в Second активность:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    getWindow().getSharedElementEnterTransition().setDuration(500); 
    getWindow().getSharedElementReturnTransition().setDuration(500) 
     .setInterpolator(new DecelerateInterpolator()); 
}