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

Я работаю в приложении, похожем на Календарь Google...

  1. Есть события, и когда пользователь щелкает одно из них, событие увеличивается и трансформируется в подробное представление.
  2. Общие представления (события) находятся внутри ScrollView, поэтому в какой-то момент эти представления могут быть частично видны.
  3. Проблема в том, что когда выбран один частично видимый вид, полный вид появляется выше всех, а затем запускается анимация.

Вот описание проблемы: введите здесь описание изображения

Что я могу сделать, чтобы переход использовал только видимую часть представления для его анимации?

Это мой переход:

<changeBounds xmlns:android="http://schemas.android.com/apk/res/android">
   <arcMotion android:minimumHorizontalAngle="15"
       android:minimumVerticalAngle="0"
       android:maximumAngle="90"/>
</changeBounds>

person Oscar Méndez    schedule 04.02.2018    source источник
comment
Можете ли вы поделиться простым проектом на github с таким поведением?   -  person azizbekian    schedule 07.02.2018


Ответы (1)


Общие элементы отображаются поверх всей иерархии представлений. Вы можете отключить это, установив Window#setSharedElementsUseOverlay(false) в своих действиях, но это приведет к нежелательным эффектам. Подробнее здесь и на YouTube.

Лучшее решение — использовать переход общих элементов между фрагментами. Подробнее здесь.

person artkoenig    schedule 07.02.2018
comment
Даже если я установлю setSharedElementsUseOverlay(false), проблема не исчезнет. - person Oscar Méndez; 13.02.2018
comment
@OscarMéndez Боюсь, без примера проекта вам будет сложно помочь. Единственные интересные части: макеты ваших действий (или фрагментов) и то, как вы их запускаете. Просто создайте фиктивные представления и разместите их здесь, а еще лучше создайте пример проекта на Github. - person artkoenig; 13.02.2018
comment
Конечно, я создам фиктивный проект на github и расширим свой вопрос. - person Oscar Méndez; 16.02.2018