Переход общего элемента Android — запретить отрисовку общего элемента

Я работаю над пользовательским Transition, чтобы анимировать только видимую часть Shared View, если она частично видна.

В моем случае это происходит потому, что Shared View находится внутри ConstraitLayout, а ConstraitLayout внутри ScrollView.

Я упомянул эту проблему в другом вопросе: Переход общего элемента — анимация только видимой части общего вида

Это transition значение по умолчанию, выбранное системой:

введите описание изображения здесь

А это тот, где я работаю:

введите описание изображения здесь

Сама анимация работает хорошо... Но проблема в том, что система рисует полный общий вид, до того, как начнется анимация... и происходит уродливое мерцание.

Как я могу предотвратить это?

У меня уже есть в моем стиле:

<item name="android:windowSharedElementsUseOverlay">false</item>


person Oscar Méndez    schedule 04.02.2018    source источник
comment
Не могли бы вы предоставить ссылку на GitHub для вашего проекта? Добавление только соответствующих файлов для решения этой проблемы.   -  person iamgopal    schedule 13.02.2018


Ответы (1)


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

person Leo supports Monica Cellio    schedule 12.02.2018
comment
Я не понимаю, почему я должен добавить ту же панель инструментов в целевую активность, кроме того, что это всего лишь пример, что если представление, закрывающее SharedView, не является панелью инструментов и находится в другом месте на экране - person Oscar Méndez; 13.02.2018