Пикассо: переход общего элемента между двумя фрагментами

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




Ответы (1)


Я боролся с той же проблемой в течение последних нескольких дней и, наконец, получил ее, за исключением того, что я использую Glide, проверьте мой вопрос. Я поделился там некоторым кодом, но для Пикассо он будет похожим. По сути, вы предотвращаете немедленный переход общего элемента, откладывая его до тех пор, пока не убедитесь, что изображение загружено, вы используете обратный вызов Picasso, который будет запущен после завершения загрузки изображения, и вы начнете свой отложенный переход там, что-то вроде тот:

Picasso.with(mContext).load(image).resize(width,height)
                .error(R.drawable.error)
                .placeholder(R.drawable.placeholder)
                .into(imageView, new Callback() {
                    @Override
                    public void onSuccess() {
                        startPostponedEnterTransition();
                    }

                    @Override
                    public void onError() {
                        startPostponedEnterTransition();
                    }
                });

Вы можете узнать больше об отсрочке переходов в этот< /а> статья.

Конечно, реализация Shared Element Transition включает в себя и другие шаги, часть из которых вы найдете в моих вопросах, а другие части в эта статья (совсем недавняя) и этот тоже (у него 4 части) Просто чтобы убедиться, что ваши фрагменты не вложены друг в друга?

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

person Suleyman    schedule 19.04.2018