我有几个spinners
在表格上。当我单击其中任何一个时,它会打开并显示选项。当我点击其他任何一个spinner
它关闭了打开的spinner
但随后我需要再次单击所需的spinner
以便打开它。
我想捕获第二个微调器的第一次单击,以便我可以关闭第一个打开的微调器,然后打开单击的微调器。
我看到有关在外部单击时关闭微调器的帖子,但这还不够,因为我仍然不知道单击了所需的微调器(onclick()
第二个旋转器的未启动)。
我有点忙于编写并向您提供一些代码,但可以从以下链接获得帮助this https://stackoverflow.com/questions/3619693/getting-views-coordinates-relative-to-the-root-layout你可以获得一些片段。这是我的想法。首先,当您创建视图时,获取微调器的坐标,例如微调器 A、B 和 C。还编写一个函数(例如foo(...)
) 返回点击点的坐标但不消耗它。然后注册A、B、ConItemSelectedListeners
并在他们的onNothingSelected
检查单击的点是否在微调器的其他两个区域中(使用foo(...)
你之前写过)。这样你就可以得到你想要的。抱歉,我既忙又懒,但这可行。我希望我对你有帮助。
更新(用于接收触摸):
好吧,我尝试了几种方法,说实话,它们都不起作用,甚至使活动拦截触摸事件也没有帮助,所以我想打开旋转器的情况就像弹出窗口一样,在这种情况下,我想到了一个解决方案。
您需要在所有视图之上放置一个透明层来拦截触摸,但它应该像锁定屏幕中使用的那样,以便没有其他对话框或视图可以位于其之上。如果您编写过锁屏应用程序或尝试过这样做,您就知道该怎么做。
然而对于这种情况,许可就太过分了,我不建议你这样做,除非你找到另一种和平的方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)