cari

Rumah  >  Soal Jawab  >  teks badan

view - 关于Android的setvisibility()方法

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

怪我咯怪我咯2773 hari yang lalu717

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-04-17 13:07:37

    单纯的用LZ贴的代码,无法重现LZ所说的情况,如果确实设置了 camera_ui_view的gone的话,那么其子元素也会随之gone,这是毋庸置疑的,LZ可以把这段代码独立出来做测试,如果都gone了,那说明是程序里其他代码的问题,找到原因望回复,我等很好奇!

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-17 13:07:37

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

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-17 13:07:37

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

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:07:37

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

    balas
    0
  • Batalbalas