Layout Layers? Z-Axis? - PullRequest
       19

Layout Layers? Z-Axis?

27 голосов
/ 14 октября 2010

Я видел множество приложений, которые используют наслоения в своих макетах.Когда я говорю о наслоении, я имею в виду слои по оси z относительно точки зрения пользователя.Одним из таких приложений является приложение Craigslist Notification, где в верхней части listView в нижней части есть знак плюса для предоставления пользователю доступа к добавлению дополнительного элемента списка.

В моем случае я успешно использую GestureListener дляпереворачивать страницы.Работает хорошо, но я хотел бы наложить прозрачную стрелку вправо и влево png по краям страниц, если есть страницы назад или вперед той страницы, на которой сейчас находится пользователь.

Я искал, но неЯ уверен, что два элемента макета занимают одно и то же пространство одновременно.В этом случае у вас есть содержимое страницы (макет) и необходимость чего-то поверх (оси Z) этого макета.

Может ли кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

82 голосов
/ 14 октября 2010

Попробуйте использовать FrameLayout.

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

Помните, что Android будет размещать вещи в вашем макете в порядке их перечисления, поэтому размещайте объекты в нижней части макета, который вы хотите, в верхней части экрана.

Вот краткий пример (не забудьте добавить правильные данные заголовка xml в верхний узел):

<FrameLayout>
  <RelativeLayout>
    <!--  Place the objects you want on the bottom here -->
  </RelativeLayout>


  <RelativeLayout>
    <!--  Place the objects you want on the top here -->
  </RelativeLayout>
</FrameLayout>
13 голосов
/ 15 июля 2011

Небольшое дополнение к предыдущему ответу: для предотвращения событий onClick в нижнем «слое» установите атрибут clickable = «true» в верхний «слой»

<RelativeLayout
....
android:clickable="true"/>

В противном случае кнопки на чем-либо с событиями «щелчка» можно нажимать через верхний слой.

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

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