2013-06-21 60 views
0

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

我已经看到它的行为是太但从过去几年的经历我已经注意到,在堆栈底部的孩子也例如

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

</framelayout> 

访问,但是我可以点击按钮2还, framlayout实际上如何表现这是我无法得到的唯一布局。

回答

2

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

触摸事件去那是在Z轴在X上的小部件/ Y坐标触摸事件。 RelativeLayout具有相同的效果。

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

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

+0

对不起,我的错误按钮2应该可以访问,按钮1不应该,但我想知道它是否在堆栈底部的孩子为什么接受触摸事件。 –

+0

@MeraClientChorhai:正如我写的,“触摸事件转到位于触摸事件的X/Y坐标处的Z轴顶部的控件”。因此,'button1'的任何部分都是可见的*都可以被触摸,并且它将接收到该触摸事件。 – CommonsWare

+0

Thiks,将帮助我很多。 –