【发布时间】:2013-10-09 10:06:29
【问题描述】:
我的研究把我带入了死胡同。
有一个活动,其中显然有视图。
有多种方法可以检查用户在屏幕上是否可以看到视图,或者是否超出屏幕范围。
但这里有另一种情况:有相对布局,一个view故意重叠另一个view,或者activity中有弹窗。
方法,用于检查视图是否可见(包括 getLocationOnScreen、getLocalVisibleRect、getHitRect、getDrawingRect),返回值,就好像视图在屏幕上可见一样,尽管事实上它正在与另一个重叠,所以我无法检查用户是否可以看到视图。
有没有办法检查一下?
【问题讨论】:
-
你为什么需要这个,确切地说?由于我们正在谈论多个窗口,因此在框架中没有办法做到这一点。您可以通过遍历树来实现在同一窗口中检查重叠视图,但这不是框架的一部分。
-
什么是 Android 中的窗口,顺便说一句?是活动吗?因此,Android 框架中没有任何方法可以检查视图是否对最终用户可见,这意味着视图没有超出屏幕范围并且没有重叠。
-
Activity有一个Window,Dialog也有一个。窗口由WindowManager系统服务管理,您使用它们的界面有限(它主要是装饰视图、面板和 UI 功能,如操作栏,尽管您也有一些较低级别的控制)。应该可以编写适用于所有当前可见窗口的东西,但我相信没有办法开箱即用。 -
@cheshie 您找到解决方案了吗?
-
@Sorry Boss,实际上没有。此任务现在已冻结,我正在开发该项目的其他功能。但是,请确保,一旦我有任何解决方案,我会发布它。感谢您的关注。