我在Android上将visibility
设置为隐身:
myImageView.setVisibility(View.INVISIBLE);
然后让它可见:
myImageView.setVisibility(View.VISIBLE);
现在我不知道myImageView
是否可见,我该如何检查:
if (myImageView IS VISIBLE) {
Do something
} else {
Do something else
}
我该怎么做?我必须在括号内写什么?
答案 0 :(得分:438)
虽然View.getVisibility()确实获得了可见性,但它不是简单的true / false。视图可以将其可见性设置为三件事之一。
<强> View.VISIBLE 强> 视图可见。
<强> View.INVISIBLE 强> 该视图是不可见的,但仍将使用它通常占用的任何间距。它的“隐形”
<强> View.GONE 强> 视图消失了,你看不到它,也没有占据“点”。
所以要回答你的问题,你正在寻找:
if (myImageView.getVisibility() == View.VISIBLE) {
// Its visible
} else {
// Either gone or invisible
}
答案 1 :(得分:109)
或者你可以简单地使用
View.isShown()
答案 2 :(得分:49)
如果图像是布局的一部分,则可能是“View.VISIBLE”,但这并不意味着它位于可见屏幕的范围内。如果这就是你所追求的;这将有效:
Rect scrollBounds = new Rect();
scrollView.getHitRect(scrollBounds);
if (imageView.getLocalVisibleRect(scrollBounds)) {
// imageView is within the visible window
} else {
// imageView is not within the visible window
}
答案 3 :(得分:3)
您将使用相应的方法getVisibility()。前缀为'get'和'set'的方法名称是Java用于表示属性的约定。某些语言具有属性的实际语言结构,但Java不是其中之一。因此,当您看到标记为“setX”的内容时,您可以99%确定有相应的“getX”可以告诉您该值。