我有以下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仍然占用空间,导致布局中两个其他线性布局之间的填充,为什么?如何让它占用空间?
答案 0 :(得分:39)
如果您希望视图不占用空间,则必须将可见性设置为gone
。
答案 1 :(得分:13)
Invisible
的文档说:
此视图不可见,但仍然存在 占用空间用于布局目的。
因此,将布局的可见性设置为不可见只是隐藏布局,但不会释放消耗的空间。如果你想这样做,你必须设置可见性。
Gone
做你想做的事:
此视图是不可见的,但它不是 占用任何空间用于布局目的。
另见:http://developer.android.com/reference/android/view/View.html#setVisibility(int)
答案 2 :(得分:10)
将invisible
更改为gone
,这样可以解决问题。
public static final int View.INVISIBLE
此视图不可见,但仍然存在 占用空间用于布局目的。 与setVisibility(int)一起使用。
答案 3 :(得分:6)
invisible
将占用与visible
相同的空间。如果您希望它不占用空间,请将可见性设置为gone
。