Фрагмент анимации вопроса - PullRequest
2 голосов
/ 20 мая 2011

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

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

У меня довольно сложные макеты, и я бы не стал просить систему перекомпоновывать каждый кадр.Но я бы хотел плавную анимацию перехода, как в примере.Есть ли альтернативные решения этой проблемы?

Ps: Просто чтобы прояснить, я не спрашиваю, как сделать базовую анимацию транзакции фрагмента.Я знаю их, и AFAIK, эти анимации не могут привести к поведению, обнаруженному в этом приложении галереи образцов (другим примером может быть приложение Honeycomb Gmail, в нем есть похожие переходы, которых я хотел бы достичь).

1 Ответ

0 голосов
/ 24 мая 2011

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

...