Android стирает анимацию, когда панель кнопок сдвигается вверх

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

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

Стереть анимацию


person user3410051    schedule 13.03.2014    source источник
comment
Вам нужно будет создать собственное представление для этого вида анимации. Этого можно добиться, сделав представление невидимым, но отображаемым полностью. Затем, когда ручка (кнопка) перемещается вверх, соответственно отображается вид. Возможно, вы захотите сослаться на код навигационного ящика Android.   -  person Hardik4560    schedule 13.03.2014
comment
Спасибо за ответ. Любой учебник, чтобы создать это? Или я могу изменить несколько кодов с ‹github.com/umano/AndroidSlidingUpPanel  -  person user3410051    schedule 13.03.2014


Ответы (2)


Обратитесь к этому:

https://android.googlesource.com/platform/frameworks/base/+/ab51002847ea3dcdc0ba14eb330ab9ec292a9789/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

В приведенном выше коде сосредоточьтесь на методе animateCollapsePanels.

person Hardik4560    schedule 13.03.2014
comment
есть ли другой способ? сори, мне тяжело - person user3410051; 13.03.2014

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

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

person user823629    schedule 01.11.2015