Эффект пульсации не возникает, когда также используется makeSceneTransitionAnimation

У меня есть rippleDrawable, который я использую в качестве фона для LinearLayout:

<LinearLayout android:id="@+id/card_layout" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:clickable="true" android:background="@drawable/ripple" android:orientation="vertical" > 

Я хочу начать новую активность onClick макета. Когда я просто выполняю startActivity (), эффект пульсации работает отлично – вы можете увидеть большую часть эффекта пульсации, затем появится новый экран.

Однако, если я начинаю деятельность с помощью ActivityOptionsCompat.makeSceneTransitionAnimation, эффект пульсации не возникает, когда я нажимаю макет. Обратите внимание, что длительное нажатие все еще показывает пульсацию в этом случае.

Я попробовал это и на кнопке, и увидел тот же результат.

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

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

У кого-нибудь есть идеи о том, что я могу делать неправильно?

Я использую API 21 (нет AppCompat). Заранее благодарю за любую помощь.

Solutions Collecting From Web of "Эффект пульсации не возникает, когда также используется makeSceneTransitionAnimation"

Не на 100% уверен, что я отвечаю на ваш вопрос, но у меня была проблема, которая звучит аналогично эффекту ряби, не заканчивающемуся, когда я начинаю новую деятельность, поэтому я закончил использование обработчика с задержкой в ​​OnClickListener:

 Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { startActivity(intent); } }, 150);