Jaka jest różnica między statusem widoczności invisible
i gone
dla niego?
android
android-xml
xml-attribute
Obrabować
źródło
źródło
Odpowiedzi:
NIEWIDOCZNY:
ODSZEDŁ:
źródło
display:none
&visibility:hidden
w HTML / CSS :-)Z dokumentacji można to powiedzieć
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ędzieA kiedy ustawisz widoczność przycisku drugiego jako nieistniejącego (
View.GONE
), wtedy wynik będzieMam nadzieję, że rozwiąże to twoje wątpliwości.
źródło
W przypadku ListView lub GridView istnieje inna różnica, gdy początkowo widoczność jest ustawiona na
NIEWIDOCZNY:
ODSZEDŁ:
źródło
NIEWIDOCZNY:
Widok musi zostać narysowany i wymaga czasu.
GONE:
Widok nie musi być rysowany.
źródło
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
lubView.INVISIBLE
wyrenderować (narysować) na ekranie, a następnie go obsłużyć.źródło
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.
źródło
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
źródło
View.GONE = Widok nie zostanie wyświetlony, a reszta widoków nie uwzględni jego istnienia
View.INVISIBLE = Widok się nie pokaże, ale zajmie przypisane mu miejsce w układzie
źródło