我有一个带有一堆按钮的LinearLayout。除非选择菜单项,否则此面板始终处于隐藏状态。
显示LinearLayout时,我想检测用户是否单击了面板外的任何地方,以便可以再次隐藏它。有没有办法做到这一点,也许可以检测焦点变化?
我试图将一个OnFocusChangeListener添加到LinearLayout本身(并在其上调用setFocusable(true)),但从未调用过焦点更改侦听器。此外,我必须能够检测LinearLayout或其任何子级是否失去焦点。
最佳答案
尝试这个:
步骤#1:让LinearLayout
监视触摸事件,并消耗它们
步骤#2:让LinearLayout
下的事物监视触摸事件-如果它得到一个,则表明它不是来自LinearLayout
的,因此您可以关闭LinearLayout
并使用该事件,然后取消注册用于触摸事件(或者仅在屏幕上显示LinearLayout
时注意它们)
步骤#3:没有步骤#3 ...我认为
关于android - 如何检测是否有人在特定的LinearLayout之外单击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2343609/