Odpowiedzi:
NIEWIDOCZNY:
Ten widok jest niewidoczny, ale nadal zajmuje miejsce na potrzeby układu.
ODSZEDŁ:
Ten widok jest niewidoczny i nie zajmuje miejsca na układ.
display:none
& visibility:hidden
w HTML / CSS :-)
Z dokumentacji można to powiedzieć
View.GONE Ten widok jest niewidoczny i nie zajmuje miejsca dla celów układu.
View.INVISIBLE Ten widok jest niewidoczny, ale nadal zajmuje miejsce dla celów układu.
Pozwala wyjaśnić ten pomysł za pomocą kilku zdjęć.
Załóżmy, że masz trzy przyciski, jak poniżej
Teraz, jeśli ustawisz widoczność przycisku drugiego jako niewidocznego ( View.INVISIBLE
), wtedy wynik będzie
A kiedy ustawisz widoczność przycisku drugiego jako nieistniejącego ( View.GONE
), wtedy wynik będzie
Mam nadzieję, że rozwiąże to twoje wątpliwości.
Chciałbym dodać do właściwych i udanych odpowiedzi, że jeśli zainicjujesz widok z widocznością jako View.GONE
, widok mógł nie zostać zainicjowany i otrzymasz kilka przypadkowych błędów.
Na przykład jeśli zainicjujesz układ jako View.GONE
a następnie próbujesz rozpocząć animację, z mojego doświadczenia wynika, że moja animacja działa losowo. Czasem tak, czasem nie.
Więc przed obsługą (zmiana rozmiaru, przesuwanie, cokolwiek) widoku, musisz go zainicjować jako View.VISIBLE
lub View.INVISIBLE
wyrenderować (narysować) na ekranie, a następnie go obsłużyć.
GONE
kiedy go znikasz przy każdej kompilacji programu, komponent jest inicjalizowany, co oznacza, że usuwasz komponent z układu, a gdy uczynisz go niewidocznym, zajmie to samo miejsce w układzie, ale za każdym razem nie musisz go inicjować .
jeśli ustawisz Visibility = Gone, musisz zainicjować komponent .. jak
np. Button _mButton = new Button (this);
_mButton = (przycisk) findViewByid (R.id.mButton);
więc zajmie to więcej czasu w porównaniu do Widoczności = niewidoczny.
View.INVISIBLE -> Widok jest niewidoczny, ale zajmie trochę miejsca w układzie
View.GONE -> Widok nie jest widoczny i nie będzie zajmował żadnego miejsca w układzie