【问题标题】:Layout Layers? Z-Axis?布局层? Z轴?
【发布时间】:2018-06-21 01:17:19
【问题描述】:

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

就我而言,我成功地使用了 GestureListener 来翻页。效果很好,但如果用户当前所在页面的前后有页面,我想在页面边缘叠加一个透明的左右箭头 png。

我已经搜索过,但不太确定如何让 Layout 的 2 个元素同时占用相同的空间。在这种情况下,您拥有页面的内容(布局),并且需要在该布局的(z 轴)之上放置一些东西。

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

【问题讨论】:

    标签: android layout


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      对上一个答案的小补充: 防止底部“层”上的 onClick 事件将属性 clickable="true" 设置为顶部“层”

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

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

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

      【讨论】:

      • 这不是问题的答案。它应该是对其他答案的评论......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多