当我用setvisibility()方法,设定view元素无效的时候,其本身确实无效,可其子元素依然可见。请问这是为什么?应该如何对应?
layout.xml
<LinearLayout
android:id="@+id/camera_ui_view"
...... >
<SurfaceView
android:id="@+id/surfaceview"
...... />
<FrameLayout
android:id="@+id/setting"
...... />
</LinearLayout>
Activity.java
private ViewGroup cameraUIView = (ViewGroup) findViewById(R.id.camera_ui_view);
cameraUIView.setvisibility(View.GONE);
这里cameraUIView变无效了,可是surfaceview和setting依然可见。
單純的用LZ貼的程式碼,無法重現LZ所說的情況,如果確實設定了camera_ui_view的gone的話,那麼其子元素也會隨之gone,這是毋庸置疑的,LZ可以把這段程式碼獨立出來做測試,如果都gone了,那表示是程式裡其他程式碼的問題,找到原因望回复,我等很好奇!
LinearLayout為佈局節點,而camera_ui_view是這個佈局節點的id屬性,佈局節點只是控制組件的排列方式
樓主可以SurfaceView的id屬性在Activity.java中定義一下,然後設定其可見(visibility)與否屬性。
如果沒有別的方法,可以遍歷viewgroup的subview啊
樓主可以試試看在ViewGroup上加上背景色,然後再設定為gone,就可以看到,究竟是不是ViewGroup不可見而子View可見。 。 。
我認為,應該是樓主在某個流程的執行上出現問題。 。 。不可能說ViewGroup不可見,而子View可見的!