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

当我用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了,那说明是程序里其他代码的问题,找到原因望回复,我等很好奇!

いいねを押す +0
大家讲道理

LinearLayout为布局节点,而camera_ui_view是这个布局节点的id属性,布局节点只是控制组件的排列方式
楼主可以SurfaceView的id属性在Activity.java中定义一下,然后设置其可见(visibility)与否属性。

いいねを押す +0
巴扎黑

如果没有别的方法,可以遍历viewgroup的subview啊

いいねを押す +0
Peter_Zhu

楼主可以试试给ViewGroup加上一个背景色,然后再设置为gone,就可以看到,究竟是不是ViewGroup不可见而子View可见。。。
我认为,应该是楼主在某个流程的执行上出现问题。。。不可能说ViewGroup不可见,而子View可见的!

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート