我可以以某种方式检索我的视图的可见性状态吗?

时间:2013-02-27 16:28:04

标签: android visibility state

myView设置为invisible后:

public void onClick(View arg0) {
myView.setVisibility(View.INVISIBLE); }

我可以通过一些内置方法以某种方式询问 myView的可见性的当前状态吗? 类似“myView.isVisible();”

我检查了android.developer,但没有得到答案。 感谢您的帮助:)

3 个答案:

答案 0 :(得分:4)

boolean visible = myView.getVisibility() == View.VISIBLE;

答案 1 :(得分:1)

myView.isShown() 确定此视图及其所有父项是否已设置为可见 但是,它可能在屏幕外(例如在ViewPagerScrollView内等),而myView.isShown()仍然是true

相反,请尝试此操作以确定myView是否实际(部分)在屏幕上并显示给用户。

 Rect rect = new Rect();
 boolean visible = myView.isShown(); 
 boolean shown = visible && myView.getLocalVisibleRect(rect);

答案 2 :(得分:1)

您可以使用以下方法了解视图的可见性:

public String getVisibleState(View v) {
        if (v.getVisibility() == View.VISIBLE)
            return "Visible";
        if (v.getVisibility() == View.INVISIBLE)
            return "In Visible";
        if (v.getVisibility() == View.GONE)
            return "Gone";
        return "I dont know";
    }