布局图层?Z轴?

28

我见过许多应用程序在其布局中使用分层。当我说到分层时,是指相对于用户视图的z轴上层。其中一个这样的应用程序是Craigslist通知应用程序,在listView上方有一个加号,靠近底部,允许用户访问添加其他列表项。

在我的情况下,我成功地使用了GestureListener来翻页。效果很好,但如果当前页面后面或前面有页面,则希望在页面边缘叠加一个透明的右箭头和左箭头png图片。

我已经搜索过了,但不太确定如何使布局的两个元素同时占用相同的空间。 在这种情况下,您需要页面内容(布局)和需要放在该布局(z轴)上方的内容。

可以有人指引我正确的方向吗?

2个回答

85

尝试使用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

对之前回答的补充: 为了防止在底层“图层”上的onClick事件,将clickable属性设置为顶层“图层”。

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

否则,拥有“点击”事件的元素上的按钮可能会被置于顶层,并被按下。

我发现这个问题是当我试图使用半透明背景来覆盖UI时遇到的RelativeLayout层。


这不是对答案的问题,而应该是对另一个答案的评论... - arkascha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接