我有一个带有一堆按钮的LinearLayout。除非选择菜单项,否则此面板始终处于隐藏状态。
当显示LinearLayout时,我想检测用户是否点击了面板外的任何位置,以便我可以再次隐藏它。有没有办法做到这一点,可能是检测焦点变化?
我试图将一个OnFocusChangeListener添加到LinearLayout本身(并在其上调用setFocusable(true)),但焦点更改侦听器永远不会被调用。此外,我必须能够检测LinearLayout或其任何一个孩子是否失去焦点。
答案 0 :(得分:3)
试试这个:
步骤1:让LinearLayout
观看触摸事件并使用它们
步骤2:让LinearLayout
下的东西看一下触摸事件 - 如果它有一个,你知道它不是来自LinearLayout
,所以你忽略LinearLayout
并且消耗该事件,然后可能取消注册触摸事件(或者仅在LinearLayout
在屏幕上时注意它们)
步骤3:没有第3步......我想