2016-03-17 3 views
0

У меня есть карточный вид с высотой и на белом фоне, который я хочу расширить, чтобы заполнить весь экран. Это карта в списке (мой собственный макет, а не CardView), и я хочу, чтобы он занял весь экран, когда он прослушивается через переход фрагмента.Как сделать вид расширяться как материал «лист»?

Моя первая идея - создать фальшивый, идентичный вид в новом фрагменте, поместить его в позицию позиции и анимировать его вверху, а также анимировать рамки его размещения, чтобы охватить весь экран. Тем не менее, я не думаю, что это лучшая идея, так как Android придется переоценивать макет каждого кадра во время работы анимации (вероятно, будет отставать). Есть ли способ получить этот эффект чистым способом? Я собираюсь использовать переходы фрагментов, поэтому надеюсь, что смогу использовать Animator в некотором роде, но я возьму любое решение.

ответ

0

Вы можете попробовать сделать то же самое, но вместо ретрансляции выполните перерисовку. Создайте собственную реализацию onDraw(), это не так сложно.

View заполнит весь экран, но в начале анимации будет рисовать только начальную часть.

Или вы можете просто попробовать свой подход, его легко реализовать, и может быть, это не так медленно.

Кроме того, может быть непосредственно изменен набор setLeft(), setRight() и т. Д. С Animators является допустимым решением.

+0

Не будет переопределять 'onDraw', а не анимировать тень? –

+0

Вы правы, тени не будут анимированы. Попробуйте аниматоры с анимированными левыми, средними и т. Д. Свойствами представления. –

+0

Я попробую, спасибо. –

Смежные вопросы