【问题标题】:Why does a LinearLayout which is invisible take up space?为什么不可见的 LinearLayout 会占用空间?
【发布时间】:2013-12-10 00:28:33
【问题描述】:

我有以下 LinearLayout...

<LinearLayout android:id="@+id/linearLayout3" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/S"></TextView>
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/b"></TextView>
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/Ar"></TextView>
</LinearLayout>

我已将可见设置为不可见,但 LinearLayout 仍然占用空间,导致布局中其他两个线性布局之间出现填充,为什么?如何让它不占空间?

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    因为如果您希望视图不占用空间,则必须将可见性设置为 gone

    【讨论】:

      【解决方案2】:

      Invisible 的文档说:

      这个视图是不可见的,但它仍然 占用空间用于布局。

      因此将布局的可见性设置为不可见只会隐藏布局,但不会释放消耗的空间。如果你想这样做,你必须将可见性设置为消失。

      Gone 做你想做的事:

      这个视图是不可见的 为布局目的占用任何空间。

      另见:http://developer.android.com/reference/android/view/View.html#setVisibility(int)

      【讨论】:

        【解决方案3】:

        invisible 更改为gone 即可。

        public static final int View.INVISIBLE

        这个视图是不可见的,但它仍然 占用空间用于布局目的。 与 setVisibility(int) 一起使用。

        View.GONEView.INVISIBLE

        【讨论】:

          【解决方案4】:

          invisible 将占用与visible 相同的空间。如果您希望它不占用空间,请将可见性设置为 gone

          【讨论】:

            猜你喜欢
            • 2013-12-03
            • 1970-01-01
            • 1970-01-01
            • 2013-09-13
            • 2012-02-12
            • 1970-01-01
            • 1970-01-01
            • 2018-11-26
            • 1970-01-01
            相关资源
            最近更新 更多