549 Stimmen

Android : Unterschied zwischen View.GONE und View.INVISIBLE?

Was ist der Unterschied zwischen View.INVISIBLE y View.GONE für den Status der Sichtbarkeit der Ansicht?

833voto

Iñigo Punkte 12633

UNSICHTBAR:

Diese Ansicht ist zwar unsichtbar, nimmt aber dennoch Platz im Layout ein.

GONE:

Diese Ansicht ist unsichtbar und nimmt keinen Platz im Layout ein.

316voto

Pankaj Kumar Punkte 80763

En Dokumentation kann man sagen, dass

Ansicht.GONE Diese Ansicht ist unsichtbar und nimmt keinen Platz für Layout-Zwecke.

Ansicht.unsichtbar Diese Ansicht ist zwar unsichtbar, nimmt aber dennoch Platz im Layout ein.


Lassen Sie uns die Idee mit einigen Bildern verdeutlichen.

Angenommen, Sie haben drei Schaltflächen, wie unten dargestellt

enter image description here

Wenn Sie nun die Sichtbarkeit der Schaltfläche Zwei als unsichtbar einstellen ( View.INVISIBLE ), dann wird die Ausgabe sein

enter image description here

Und wenn Sie die Sichtbarkeit der Schaltfläche Zwei als nicht vorhanden festlegen ( View.GONE ), dann wird die Ausgabe sein

enter image description here

Ich hoffe, dies wird Ihre Zweifel ausräumen.

35voto

mes Punkte 3534

Für ListView oder GridView gibt es einen weiteren Unterschied, wenn die Sichtbarkeit zunächst auf

UNSICHTBAR:

Die getView()-Funktion des Adapters ruft

GONE:

Die getView()-Funktion des Adapters wurde nicht aufgerufen, wodurch das Laden von Ansichten verhindert wurde, obwohl dies nicht notwendig ist

10voto

twlkyao Punkte 13846

UNSICHTBAR:
Das Bild muss gezeichnet werden und das braucht Zeit.

GONE:
Die Ansicht muss nicht gezeichnet werden.

10voto

Rafael Ruiz Muñoz Punkte 5105

Ich möchte zu den richtigen und erfolgreichen Antworten hinzufügen, dass, wenn Sie eine Ansicht mit Sichtbarkeit als initialisieren View.GONE könnte die Ansicht nicht initialisiert worden sein und Sie erhalten einige zufällige Fehler.

Wenn Sie zum Beispiel ein Layout initialisieren als View.GONE und dann versuchen Sie, eine Animation zu starten. Meiner Erfahrung nach funktioniert meine Animation manchmal zufällig. Manchmal ja, manchmal nein.

Bevor Sie also eine Ansicht bearbeiten (Größe ändern, verschieben, was auch immer), müssen Sie sie als View.VISIBLE o View.INVISIBLE um es auf dem Bildschirm zu rendern (zu zeichnen) und dann zu bearbeiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X