Почему LinearLayout, который невидим, занимает место? - PullRequest
18 голосов
/ 22 апреля 2011

У меня есть следующая 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 все еще занимает место, вызывая заполнение между двумя другими линейными планировками в макете, почему? Как сделать так, чтобы оно не занимало места?

Ответы [ 4 ]

39 голосов
/ 22 апреля 2011

Потому что вы должны установить видимость на gone, если хотите, чтобы представление не занимало места.

13 голосов
/ 22 апреля 2011

Документация Invisible гласит:

Это представление невидимо, но оно все еще занимает место для макета.

Таким образом, установка видимости макета на невидимый просто скрывает макет, но не освобождает занимаемое пространство.Если вы хотите сделать это, вы должны установить видимость исчезнувшим.

Gone делает то, что вы хотите:

Это представление невидимо, идля разметки не требуется места.

См. также: http://developer.android.com/reference/android/view/View.html#setVisibility(int)

10 голосов
/ 22 апреля 2011

Измените invisible на gone, что поможет.

public static final int View.INVISIBLE

Это представление невидимо, но оно все еще занимает место для макета. Использовать с setVisibility (int).

См. View.GONE и View.INVISIBLE

6 голосов
/ 22 апреля 2011

invisible займет столько же места, как если бы это было visible.Установите видимость на gone, если вы хотите, чтобы она не занимала места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...