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

Lesezeit: 4 Minuten

Benutzeravatar von Rob
rauben

Was ist der Unterschied zwischen View.INVISIBLE und View.GONE für den Sichtbarkeitsstatus anzeigen?

  • Wenn eine Ansicht weg ist, bedeutet dies, dass sie keinen Platz im Layout einnimmt. Wenn es unsichtbar ist, nimmt es den nötigen Platz in einem Layout ein, aber Sie sehen es einfach nicht.

    – DroidBender

    19. Juli 2012 um 8:16 Uhr

UNSICHTBAR:

Diese Ansicht ist unsichtbar, nimmt aber dennoch Platz für Layoutzwecke ein.

WEG:

Diese Ansicht ist unsichtbar und nimmt für Layoutzwecke keinen Platz ein.

  • Sieht aus wie analog display:none & visibility:hidden in HTML/CSS 🙂

    – Anishane

    30. Januar 2014 um 6:18 Uhr


  • Oder zu Hidden and Collapsed in Wpf XAML

    – juliushuk

    19. August 2018 um 1:00 Uhr

  • Wenn es unsichtbar ist, wird es auch deaktiviert, wenn Sie darauf klicken?

    – Kuldeep Yadav

    2. November 2018 um 1:09 Uhr

  • @KuldeepYadav ja, es wird sowohl weg als auch unsichtbar sein.

    – Steve Moretz

    6. Februar 2019 um 11:26 Uhr

  • Nur für zukünftige neugierige Leser: Wir können performItemClick immer noch in Listen-/Rasteransichten verwenden, auch wenn es unsichtbar ist.

    – kiranking

    22. Februar 2019 um 21:12 Uhr

Benutzeravatar von Pankaj Kumar
Pankaj Kumar

Aus Dokumentation das kannst du sagen

View.GONE Diese Ansicht ist unsichtbar und nimmt für Layoutzwecke keinen Platz ein.

Ansehen.UNSICHTBAR Diese Ansicht ist unsichtbar, nimmt aber dennoch Platz für Layoutzwecke ein.


Lassen Sie uns die Idee mit einigen Bildern klären.

Angenommen, Sie haben drei Schaltflächen, wie unten

Geben Sie hier die Bildbeschreibung ein

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

Geben Sie hier die Bildbeschreibung ein

Und wenn Sie die Sichtbarkeit von Schaltfläche Zwei auf „weg“ setzen (View.GONE) dann wird die Ausgabe sein

Geben Sie hier die Bildbeschreibung ein

Ich hoffe, dies wird Ihre Zweifel ausräumen.

  • Muss die Idee geklärt werden? Es scheint mir nur aus der Erklärung klar genug zu sein.

    – John Dvorak

    12. März 2015 um 5:59 Uhr

  • @JanDvorak 🙂 Großartig! Ich habe keine Antwort auf Ihre Frage. Wenn Sie der Meinung sind, dass dies für alle Benutzer sehr klar war, sollte die akzeptierte Antwort ein Kommentar sein und einen Link zur Dokumentationsseite enthalten. Hab ich recht?

    – Pankaj Kumar

    12. März 2015 um 6:09 Uhr

  • was ist, wenn ich es für edittext verwende. Ist es möglich, den Wert von edittext zu erhalten?

    – Asch

    16. Juli 2019 um 11:28 Uhr

  • Ihre Antwort ist besser als die akzeptierte Antwort.

    – Samudra Ganguly

    25. Mai 2021 um 6:42 Uhr

  • Bilder sprechen mehr als Worte

    – Gaju Kollur

    4. Juli 2021 um 16:24 Uhr

Für ListView oder GridView gibt es einen weiteren Unterschied, wenn die Sichtbarkeit anfänglich auf eingestellt ist

UNSICHTBAR:

GetView()-Funktion des Adapters aufgerufen

WEG:

Die Funktion getView() des Adapters wurde nicht aufgerufen, wodurch verhindert wird, dass Ansichten geladen werden, wenn dies unnötig ist

UNSICHTBAR:
Der Blick muss gezeichnet werden und das braucht Zeit.

WEG:
Die Ansicht muss nicht gezeichnet werden.

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

Wenn Sie beispielsweise ein Layout initialisieren als View.GONE und dann versuchst du eine animation zu starten, aus meiner erfahrung hab ich meine animation zufällig mal zum laufen bekommen. Manchmal ja manchmal nein.

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

  • Ja, du hast Recht, es funktioniert nur manchmal, wenn Sicht ist GONE

    – Suraj Bahadur

    17. Juli 2019 um 7:58 Uhr

Benutzeravatar von Ramesh R
Ramesh R

Wenn Sie es bei jeder Kompilierung des Programms weg machen, wird die Komponente initialisiert, was bedeutet, dass Sie die Komponente aus dem Layout entfernen, und wenn Sie sie unsichtbar machen, nimmt die Komponente den gleichen Platz im Layout ein, aber jedes Mal, wenn Sie dies nicht tun müssen es initialisieren.

Wenn Sie Visibility=Gone setzen, müssen Sie die Komponente initialisieren

z.B

Button _mButton = new Button(this);
_mButton = (Button)findViewByid(R.id.mButton);

es wird also mehr Zeit in Anspruch nehmen als bei Sichtbarkeit = unsichtbar.

  • Ja, du hast Recht, es funktioniert nur manchmal, wenn Sicht ist GONE

    – Suraj Bahadur

    17. Juli 2019 um 7:58 Uhr

Benutzeravatar von Yugandhar Vadlamudi
Yugandhar Vadlamudi

  • Ansehen.UNSICHTBAR->Die Ansicht ist unsichtbar, nimmt aber etwas Platz im Layout ein

  • View.GONE->Die Ansicht ist nicht sichtbar und nimmt keinen Platz im Layout ein

1422210cookie-checkAndroid : Unterschied zwischen View.GONE und View.INVISIBLE?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy