Was ist der Unterschied zwischen invisible
und gone
für den Sichtbarkeitsstatus der Ansicht?
Was ist der Unterschied zwischen invisible
und gone
für den Sichtbarkeitsstatus der Ansicht?
Antworten:
UNSICHTBAR:
Diese Ansicht ist unsichtbar, nimmt jedoch für Layoutzwecke Platz ein.
WEG:
Diese Ansicht ist unsichtbar und nimmt für Layoutzwecke keinen Platz ein.
display:none
& visibility:hidden
in HTML / CSS :-)
Aus der Dokumentation können Sie das sagen
View.GONE Diese Ansicht ist unsichtbar und nimmt für Layoutzwecke keinen Platz ein.
View.INVISIBLE Diese Ansicht ist unsichtbar, nimmt jedoch für Layoutzwecke Platz ein.
Lassen Sie uns die Idee mit einigen Bildern klären.
Angenommen, Sie haben drei Schaltflächen, wie unten
Wenn Sie nun die Sichtbarkeit von Schaltfläche Zwei als unsichtbar ( View.INVISIBLE
) festlegen , wird die Ausgabe ausgeführt
Und wenn Sie die Sichtbarkeit von Button Zwei als weg ( View.GONE
) festlegen, wird die Ausgabe ausgeführt
Hoffe, dies wird Ihre Zweifel klären.
Für ListView oder GridView gibt es einen weiteren Unterschied, wenn die Sichtbarkeit anfänglich auf eingestellt ist
UNSICHTBAR:
Die Funktion getView () des Adapters wird aufgerufen
WEG:
Die Funktion getView () des Adapters wurde nicht aufgerufen, sodass das Laden von Ansichten verhindert wird, wenn dies nicht erforderlich ist
Ich möchte den richtigen und erfolgreichen Antworten hinzufügen, dass, wenn Sie eine Ansicht mit Sichtbarkeit als initialisieren View.GONE
, die Ansicht möglicherweise nicht initialisiert wurde und Sie einige zufällige Fehler erhalten.
Wenn Sie beispielsweise ein Layout als initialisieren View.GONE
und dann versuchen, eine Animation zu starten, funktioniert meine Animation meiner Erfahrung nach zufällig. Manchmal ja manchmal nein.
Bevor Sie eine Ansicht bearbeiten (Größe ändern, verschieben, was auch immer), müssen Sie sie als View.VISIBLE
oder View.INVISIBLE
auf dem Bildschirm rendern oder rendern (zeichnen) und dann bearbeiten.
GONE
Wenn Sie es bei jeder Kompilierung des Programms deaktivieren, wird die Komponente initialisiert. Dies bedeutet, dass Sie die Komponente aus dem Layout entfernen. Wenn Sie sie unsichtbar machen, nimmt die Komponente denselben Platz im Layout ein, aber jedes Mal, wenn Sie sie nicht initialisieren müssen .
Wenn Sie Visibility = Gone setzen, müssen Sie die Komponente initialisieren
zB Button _mButton = neuer Button (this);
_mButton = (Button) findViewByid (R.id.mButton);
Daher dauert es im Vergleich zu Sichtbarkeit = unsichtbar länger.
View.INVISIBLE -> Die Ansicht ist unsichtbar, nimmt jedoch etwas Platz im Layout ein
View.GONE -> Die Ansicht ist nicht sichtbar und belegt keinen Platz im Layout