布局图层? Z轴?

时间:2010-10-14 01:28:31

标签: android layout

我见过很多在布局中使用分层的应用程序。当我谈到分层时,我指的是z轴相对于用户视图的层。一个这样的应用程序是Craigslist Notification应用程序,在listView的顶部,底部附近有一个加号,允许用户访问添加额外的列表项。

在我的情况下,我成功使用GestureListener来翻页。效果很好,但我想在页面边缘添加一个透明的左右箭头png,如果有一个用户当前所在的页面的后面或前面的页面。

我搜索过,但不太确定如何让布局的2个元素同时消耗相同的空间。在这种情况下,您可以获得页面的内容(布局),以及需要在该布局的(z轴)之上的内容。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:82)

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

答案 1 :(得分:13)

以前回答的小补充: 防止底部“图层”上的onClick事件设置属性clickable =“true”到顶部“图层”

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

否则,可以通过顶层按下具有“点击”事件的按钮。

当我尝试通过具有半透明背景的RelativeLayout图层覆盖UI时,我发现了这个问题。