У меня есть RecyclerView с изображениями, и когда я нажимаю изображение, приложение открывает другое действие, содержащее ViewPager с теми же изображениями, но в том положении, которое я выбрал.Изменение анимации повторного использования на другой элемент списка
Я сделал переход в Lollipop, чтобы разделить это изображение между действиями, используя supportPostponeEnterTransition и supportStartPostponedEnterTransition в вызываемой активности, чтобы ждать, пока viewPager будет загружен изображениями, чтобы начать переход.
Когда я вхожу в вызываемую деятельность, и когда я нажимаю назад, переходы в порядке.
Проблема, с которой я столкнулся, - это если я перехожу к другому изображению в ViewPager вызываемой активности, когда я нажимаю ее, она оживляет изображение, которое было выбрано в начале, а не в данный момент.
Я был в состоянии изменить анимированное изображение к одной, выбранной в вызываемой деятельности с этим:
@Override
public void onBackPressed() {
View view = ((ImageDetailFragment) adapter.getFragment(viewPager,
viewPager.getCurrentItem())).getTransitionView();
ViewCompat.setTransitionName(view, Constants.TRANSITION_IMAGE);
super.onBackPressed();
}
Но она возвращается в то же положение исходного изображения в списке вызывающего Мероприятия.
Как я могу сделать это, чтобы вернуть изображение в его позицию в списке вызывающей активности?
Это очень хорошо объяснено, и он отлично работает, когда пользователь переместился на другое изображение, чем оригинальное, которое в настоящее время отображается в RecyclerView. Теперь проблема заключается в том, когда пользователь перемещается к изображению в ViewPager, чем не отображается в RecyclerView. Я сделал первый шаг прокрутки к новой позиции в onActivityResult. Но этот метод вызывается после onActivityReenter, поэтому, когда я пытаюсь получить представление sharedElement с чем-то вроде «rvImages.findViewHolderForPosition (position) .itemView.findViewById (R.id.iv_photo);» Я всегда получаю нуль. – jekopena
И так бывает, если я попытаюсь прокрутить один и тот же метод onActivityReenter, прежде чем получить представление sharedElement. Поскольку представление еще не завышено, я не могу его получить. Любое решение? – jekopena
Вы можете вызвать postponeEnterTransition() в onActivityReenter, чтобы убедиться, что представление готово до начала перехода. Когда он будет готов, вызовите startPostponedEnterTransition() –