view - 关于Android的setvisibility()方法
怪我咯
怪我咯 2017-04-17 13:05:37
0
4
716

当我用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依然可见。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(4)
Ty80

單純的用LZ貼的程式碼,無法重現LZ所說的情況,如果確實設定了camera_ui_view的gone的話,那麼其子元素也會隨之gone,這是毋庸置疑的,LZ可以把這段程式碼獨立出來做測試,如果都gone了,那表示是程式裡其他程式碼的問題,找到原因望回复,我等很好奇!

大家讲道理

LinearLayout為佈局節點,而camera_ui_view是這個佈局節點的id屬性,佈局節點只是控制組件的排列方式
樓主可以SurfaceView的id屬性在Activity.java中定義一下,然後設定其可見(visibility)與否屬性。

巴扎黑

如果沒有別的方法,可以遍歷viewgroup的subview啊

Peter_Zhu

樓主可以試試看在ViewGroup上加上背景色,然後再設定為gone,就可以看到,究竟是不是ViewGroup不可見而子View可見。 。 。
我認為,應該是樓主在某個流程的執行上出現問題。 。 。不可能說ViewGroup不可見,而子View可見的!

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板