我要检查,如果View
一个内ScrollView
是目前Android中可见。 我没有检查,如果它是专注于尚未但如果目前正在显示在屏幕上了。 是否有一种方法View
,可以告诉我,如果认为是当前可见的?
Answer 1:
此代码的工作对我来说:
public static boolean isVisible(final View view) {
if (view == null) {
return false;
}
if (!view.isShown()) {
return false;
}
final Rect actualPosition = new Rect();
view.getGlobalVisibleRect(actualPosition);
final Rect screen = new Rect(0, 0, getScreenWidth(), getScreenHeight());
return actualPosition.intersect(screen);
}
Answer 2:
int[] location = new int[2];
view.getLocationOnScreen(location);
要么
Rect rect = new Rect();
view.getGlobalVisibleRect(rect);
现在,使用此位置或长方形,以检查它是否在您的可视范围或没有。 如果它仅仅是整个屏幕,核对getResources().getDisplayMetrics()
正如下面的评论中指出的ANTEK,视图可能仍然会丢失或者无形的在这里说的是返回值,其中它是最后绘制的。 因此,与结合上述范围相关的条件view.isShown()
或view.getVisibility() == VISIBLE
应采取照顾。
Answer 3:
尝试
if(view.isShown()) {
// Visible
} else {
// Invisible
}
Answer 4:
该getVisibility()
方法将帮助您检查任何的知名度View
。
例:
if(view.getVisibility() == View.VISIBLE) {
// Visible
} else {
// Invisible
}
Answer 5:
功能View.getVisibility()可以具有低于值:
View.VISIBLE(0):视图是可见的。
View.INVISIBLE(1):视图是不可见的,但它仍然占用空间布局的目的。
View.GONE(2):视图不见了。 彻底隐藏,仿佛没有被添加视图
你可以看到下面的链接了解更多信息。 我如何检查是否一个视图可见或不可见的安卓?
文章来源: How can you tell if a View is visible on screen in Android?