我对framelayout的了解是,子视图以堆栈形式绘制,最近添加的子项位于顶部。它也在官方文档页面上。
我已经看到它的行为也是如此,但从过去的一些经历中我注意到,堆栈底部的孩子也可以访问,例如
<framelayout>
<button1> // should not be accessible
<button2> // should be accessible
</framelayout>
但是我也可以单击按钮2,framlayout实际上是如何表现的,这是我唯一无法获得的布局。
答案 0 :(得分:2)
我注意到堆栈底部的孩子也可以访问
触摸事件将转到触摸事件的X / Y坐标处位于Z轴顶部的窗口小部件。 RelativeLayout
具有相同的效果。
<button1> // should be accessible <button2> // should not be accessible
这是不正确的。后来FrameLayout
或RelativeLayout
的子项在Z轴上较高。因此,button2
将浮动在button1
之上,它们重叠。如果button1
可见,则用户可以点按该可见部分,button1
将会收到该触摸事件。 button2
,因为它位于FrameLayout
的小部件堆栈之上,所以始终可见,并且始终有资格在其可见区域中触摸事件。