Как я могу добиться этого базового макета в Android с надлежащим z-упорядочением представлений

1

Как я могу выполнить следующий макет в Android?

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

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

Мне также удалось создать этот макет, используя серию вложенных макетов, но из-за порядка рисования красный квадрат всегда появляется поверх синего квадрата. Я попытался использовать метод bringToFront(), но я узнал, что это работает только на представлениях сестры в одном макете. К сожалению, я не могу получить этот тип макета, сохраняя все 4 вида в одном макете. Какие-либо предложения? (также, если у кого-то есть лучшие предложения по названию этого вопроса, я все уши)

Изображение 174551

Теги:
view
layout
animation
z-order

1 ответ

2
Лучший ответ

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

Вы также можете рассмотреть возможность использования SurfaceView, где вы можете легко и легко заказать элементы, без определения xml...

  • 0
    Эй, это сработало лучше, чем я думал. Я пробовал RelativeLayout и раньше, но безуспешно, но попробовав его снова, я смог в этом разобраться. Хотя я не верю, что есть какой-либо способ центрировать красное поле под синим (если виды не имеют одинаковую ширину), я установил красное поле под синим, а затем справа от самого левого синего цвета. коробку, и просто убедился, что красный и синий виды были одинаковой ширины. Чтобы устранить проблему с z-порядком, когда я запускаю анимацию перемещения красного прямоугольника вверх, я просто отправляю синий прямоугольник на передний план с помощью метода takeToFront (). Вуаля! Спасибо WarrenFaith

Ещё вопросы

Сообщество Overcoder
Наверх
Меню