在setVisibility()之后,ImageView不可见不可见

时间:2013-07-17 17:44:36

标签: android imageview visibility findviewbyid

我加载onCreate()和ImageView findViewById()。 ImageView从XML设置为INVISIBLE,并且应该通过调用onStart()mImage.setVisibility(View.VISIBLE)中显示。

奇怪的是,可见性没有改变,而如果我从XML设置GONE,则可见性实际上已经改变。

有什么东西我不见了吗?

编辑:

代码:

private class MyClass extends Activity {
...
private ImageView mImage;
...


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mImage = (ImageView)findViewById(R.id.imageViewCompass);
......
}

@Override
protected void onStart() {
    super.onStart();
    mImage.setVisibility(View.VISIBLE);
}
}

和XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeBus"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >



    <ImageView
        android:id="@+id/imageViewCompass"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/mwImage"
        android:visibility="invisible" />


</RelativeLayout>

2 个答案:

答案 0 :(得分:2)

我很抱歉,但我意识到我的自我,我不够清楚。我正在使用OpenGL SurfaceView,我不相信它可能会令其他视图烦恼..似乎setVisibility()方法在处理SurfaceView上方的图层时从View.INVISIBLE开始有一些问题..

我在这里找到答案: https://stackoverflow.com/a/12655713/2402640

答案 1 :(得分:0)

首先,为什么要将您的活动类声明为私有类。只有公共的,抽象的和决赛是允许的。其次,我复制并粘贴了您提供的确切代码,并创建了一个新的Android应用程序项目,它工作正常。 你能发布完整的.xml文件吗?