Drop Down Панорамирование перехода фрагмента Android - PullRequest
14 голосов
/ 31 июля 2011

Я использую Фрагменты Android. Я хочу добиться эффекта ниже.

У меня есть 2 фрагмента деталей и основной корпус. При нажатии кнопки я хочу, чтобы панель сведений скользила вниз и сдвигала часть основного корпуса.

Панель сведений не объявлена ​​в XML-макете действия. Он добавляется динамически. Также панель сведений может быть закрыта, когда пользователь покончил с этим.

Я нашел пример того, что я хочу сделать. Приложение Gmail в сотах делает это, когда у вас есть это в портретном режиме на Xoom. Перейдите полностью к электронной почте, чтобы она занимала весь экран. Нажмите кнопку «Назад» и обратите внимание на панорамы тела сообщения справа, чтобы освободить место для списка сообщений электронной почты.

Before and after of the activity.

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Лучший подход, который я в настоящее время видел и использую (с представлениями, но должен работать и для фрагментов), следующий: http://udinic.wordpress.com/2011/09/03/expanding-listview-items/

По сути, он создает представление с отрицательным полем, а затем анимирует поле до желаемого значения. Это в основном правильно преобразовывает вид, а не просто делает простую анимацию. Я работаю над своей собственной реализацией, которая использует высоту вместо поля.

Я ОЧЕНЬ заинтересован в лучшем подходе. Это делает работу, но мне не нравится, как это делается:)

Редактировать : я сделал это следующим образом: https://stackoverflow.com/a/9290723/969325

Это для видов, но может быть использовано и для фрагментов.

0 голосов
/ 20 мая 2012

Вы изучали использование LayoutTransition?

http://developer.android.com/reference/android/animation/LayoutTransition.html

По умолчанию LayoutTransition (при его создании и включении) автоматически перемещает дочерние представления при добавлении или удалении новых представлений из родительского макета.

theLayoutView.setLayoutTransition(new LayoutTransition());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...