2013-07-17 41 views
3

onCreate()和ImageView的由findViewById()加載。 ImageView被設置爲來自XML的INVISIBLE,它應該在onStart()中通過調用mImage.setVisibility(View.VISIBLE)而變得可見。ImageView的隱形沒有得到setVisibility後可見()

奇怪的是,可視性沒有改變,而如果我把時間裏從XML能見度實際改變。

有什麼,我失蹤?

編輯:

代碼:

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> 

+0

您可以發佈您的代碼? – buczek

+0

我剛剛發佈它...順便說一句,它是非常標準的代碼.... – Emanuele

+0

我試圖複製你的代碼,並與兩個看不見的圖像出現。你有沒有嘗試清理和建立你的代碼,也許有其他事情正在進行中。 – buczek

回答

0

的第一件事是你爲什麼要聲明你的活動類的私有類。只有公開的抽象& final纔是允許的。其次我複製並粘貼你提供的確切代碼,並創建一個新的android應用程序項目,它工作正常。 你可以請發佈完整的.xml文件。

+0

這是一個錯誤。該類是公共ofc :)完整xml發佈 – Emanuele

+0

爲什麼你重新聲明relativelayout的寬度和高度?刪除它,然後再試一次。 – Manu

+0

因爲還有另一個佈局作爲父項。去除寬度和高度是相同的。 – Emanuele

2

對不起,但我意識到我的自我,我不夠清楚。我使用一個OpenGL SurfaceView,我也不會相信它可能是惱人的其他意見。它似乎setVisibility()方法具有SurfaceView上方的層上工作時從View.INVISIBLE開始一些問題..

這裏我找到了答案: https://stackoverflow.com/a/12655713/2402640