Почему Transition.captureStartValues ​​и Transition.captureEndValues ​​имеют одинаковое представление с одинаковыми атрибутами?

У меня есть обычай Transition используется в общих элементах между двумя видами деятельности.

Мой переход не работает, потому что TransitionValues параметры имеют одинаковые View с одинаковыми атрибутами в обоих методах, captureStartValues а также captureEndValues, Таким образом, мой переход не имеет, что делать, если начальное и конечное значения совпадают.

Почему это происходит?

2 ответа

В моем случае я хотел перейти между двумя элементами фона. После долгих поисков я понял, что представление, доставленное в метод onCaptureStartValues, является не фактическим представлением из первого действия, а скорее его представлением, созданным во втором действии из пакета, переданного инфраструктурой перехода.

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

https://medium.com/@belokon.roman/custom-transitions-in-android-f8949870bd63

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

Вы должны установить SharedElementCallback с помощью setEnterSharedElementCallback и переопределить onSharedElementStart и onSharedElementEnd и установить прокрутку как в начале, так и в конце. Когда это полностью изменяет, конец вызывается перед началом, чтобы инвертировать переход.

Другие вопросы по тегам