Rumah > Soal Jawab > teks badan
当我用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依然可见。
PHP中文网2017-04-17 13:07:37
单纯的用LZ贴的代码,无法重现LZ所说的情况,如果确实设置了 camera_ui_view的gone的话,那么其子元素也会随之gone,这是毋庸置疑的,LZ可以把这段代码独立出来做测试,如果都gone了,那说明是程序里其他代码的问题,找到原因望回复,我等很好奇!
大家讲道理2017-04-17 13:07:37
LinearLayout为布局节点,而camera_ui_view是这个布局节点的id属性,布局节点只是控制组件的排列方式
楼主可以SurfaceView的id属性在Activity.java中定义一下,然后设置其可见(visibility)与否属性。
天蓬老师2017-04-17 13:07:37
楼主可以试试给ViewGroup加上一个背景色,然后再设置为gone,就可以看到,究竟是不是ViewGroup不可见而子View可见。。。
我认为,应该是楼主在某个流程的执行上出现问题。。。不可能说ViewGroup不可见,而子View可见的!