如何检测是否有人在特定的LinearLayout外部点击

时间:2010-02-26 17:44:07

标签: android

我有一个带有一堆按钮的LinearLayout。除非选择菜单项,否则此面板始终处于隐藏状态。

当显示LinearLayout时,我想检测用户是否点击了面板外的任何位置,以便我可以再次隐藏它。有没有办法做到这一点,可能是检测焦点变化?

我试图将一个OnFocusChangeListener添加到LinearLayout本身(并在其上调用setFocusable(true)),但焦点更改侦听器永远不会被调用。此外,我必须能够检测LinearLayout或其任何一个孩子是否失去焦点。

1 个答案:

答案 0 :(得分:3)

试试这个:

步骤1:让LinearLayout观看触摸事件并使用它们

步骤2:让LinearLayout下的东西看一下触摸事件 - 如果它有一个,你知道它不是来自LinearLayout,所以你忽略LinearLayout并且消耗该事件,然后可能取消注册触摸事件(或者仅在LinearLayout在屏幕上时注意它们)

步骤3:没有第3步......我想