【问题标题】:Framelayout behaviour框架布局行为
【发布时间】:2013-06-21 18:28:10
【问题描述】:

我对框架布局的了解是,子视图绘制在堆栈中,最近添加的子视图位于顶部。它也在官方文档页面上。

我也看到过它的行为方式,但从过去的几次经验中我注意到堆栈底部的孩子也可以访问,例如

<framelayout>
<button1>  // should not be accessible
<button2>  // should be accessible

</framelayout>

但我也可以点击按钮 2,framlayout 的实际行为如何,这是我唯一无法获得的布局。

【问题讨论】:

    标签: android android-framelayout


    【解决方案1】:

    我注意到堆栈底部的孩子也可以访问

    触摸事件会转到位于触摸事件 X/Y 坐标处的 Z 轴顶部的小部件。 RelativeLayout 效果一样。

    &lt;button1&gt; // should be accessible &lt;button2&gt; // should not be accessible

    这是不正确的。 FrameLayoutRelativeLayout 的后续子代在 Z 轴上更高。因此,button2 将漂浮在button1 之上,它们重叠。如果button1 可见,则用户可以点击该可见部分,button1 将收到该触摸事件。 button2,因为它位于 FrameLayout 中的小部件堆栈的顶部,所以将始终可见,并且始终有资格在其可见区域中进行触摸事件。

    【讨论】:

    • 对不起,我的错误按钮 2 应该可以访问,而按钮 1 不应该,但我想知道它是否在堆栈中,为什么底部的孩子会收到触摸事件。
    • @MeraClientChorhai:正如我所写,“触摸事件会发送到位于触摸事件 X/Y 坐标处 Z 轴顶部的小部件”。因此,button1 的任何可见部分都可以被触摸,并且它会接收到该触摸事件。
    最近更新 更多