/ / Usuwanie widoku od rodzica vs ukrywanie go - android

Usuwanie widoku od rodzica vs ukrywanie go - Android

W Androidzie, jeśli usunę widok z jego rodzica kontraukryj widok dziecka (GONE + Invisible) w rodzica. Rozumiem, że ukryty widok nadal będzie w pamięci, ale mówiąc o fizycznym wyglądzie widoku rodzica, czy to by miało jakąkolwiek różnicę? a jeśli odpowiedź nie jest różna, czy to oznacza, że ​​cały układ widoku podrzędnego zasadniczo nie jest obecny w rodzicu, kiedy go ukryję?

Odpowiedzi:

3 dla odpowiedzi № 1

Pierwszy z GONE & INVISIBLE to dwie różne rzeczy.

Po zmianie widoczności za pomocą GONE

Ten widok jest niewidoczny i nie zajmuje żadnej przestrzeni dla celów układu.

Ale z drugiej strony, kiedy zmieniasz widoczność, używając INVISIBLE

Ten widok jest niewidoczny, ale nadal zajmuje miejsce na potrzeby układu.

Tak więc prawdziwym pytaniem jest REMOVE vs GONE

USUNĄĆ

Po usunięciu widoku jest on usuwany z hierarchii układu. Co oznacza, że ​​nie jest już dzieckiem jego rodzica. Tak więc ten widok może być teraz używany w każdej innej grupie ViewGroup.

ODSZEDŁ

Gdy zmienisz widoczność na GONE, zostanie to zrobioneniewidzialny, a przydzielona przestrzeń jest usuwana, ale nadal jest dzieckiem tego rodzica. Z tego powodu nie można go używać w żadnej innej grupie ViewGroup, ponieważ dziecko może mieć tylko jednego rodzica.

Kiedy używać REMOVE

Dla mnie musisz USUNĄĆ widok, jeśli przenosisz widok do innej grupy ViewGroup lub chcesz go trwale ukryć.

Kiedy używać GONE

Aby przełączać widoczność wraz z przydzielonym miejscem w widoku rodzica. Po ustawieniu widoczności na GONE, użytkownik nie może odróżnić widoku od widoku.

Kiedy używać NIEWIDZIALNE

Podobnie jak GONE, kiedy chcesz przełączać widoczność, ale nie chcesz usuwać przydzielonej przestrzeni w widoku rodzica, więc interfejs będzie wyglądał tak, jakby coś było ukryte.