2011-04-22 66 views
16

我有以下的LinearLayout ...爲什麼不可見的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中佔用空間導致佈局另兩個linearlayouts之間的填充,爲什麼呢?我如何讓它不佔用空間?

回答

37

因爲如果您希望視圖不佔用空間,您必須將可見性設置爲gone

10

更改invisiblegone這將做的伎倆。

公共靜態最終詮釋View.INVISIBLE

這種觀點是無形的,但它仍然 佔用空間佈局的目的。 與setVisibility(int)一起使用。

View.GONEView.INVISIBLE

6

invisible會佔用相同的空間,如果它是visible。如果您希望它不佔用空間,請將可見性設置爲gone

12

Invisible文檔說:

這種觀點是無形的,但它仍然 佔用空間佈局的目的。

因此,將佈局的可見性設置爲不可見只會隱藏佈局,但不會釋放所消耗的空間。如果你想這樣做,你必須設置可見性消失。

Gone你想要做什麼:

這種觀點是不可見的,並且它不 採取任何空間佈局的目的。

參見:http://developer.android.com/reference/android/view/View.html#setVisibility(int

相關問題