我见过很多在布局中使用分层的应用程序。当我谈到分层时,我指的是z轴相对于用户视图的层。一个这样的应用程序是Craigslist Notification应用程序,在listView的顶部,底部附近有一个加号,允许用户访问添加额外的列表项。
在我的情况下,我成功使用GestureListener来翻页。效果很好,但我想在页面边缘添加一个透明的左右箭头png,如果有一个用户当前所在的页面的后面或前面的页面。
我搜索过,但不太确定如何让布局的2个元素同时消耗相同的空间。在这种情况下,您可以获得页面的内容(布局),以及需要在该布局的(z轴)之上的内容。
有人能指出我正确的方向吗?
答案 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时,我发现了这个问题。