Für eine View
, die manchmal sichtbar ist und manchmal nicht, je nach den Aktionen des Benutzers (in der gleichen Aktivität bleiben) was ist vorzuziehen?
Kein anderes Element hängt von der Größe oder den Dimensionen von myView
ab, daher ist das grafische Ergebnis dasselbe.
Da INVISIBLE die Abmessungen der Ansicht nicht ändert, ist das besser als GONE, da wir bei GONE unnötigerweise andere Ansichten messen und neu zeichnen müssen. Und dann neu messen und neu zeichnen, wenn myView
wieder sichtbar gemacht wird.
Sie sind auf dem richtigen Weg und denken über die Auswirkung auf das Messen nach. Welche Methode effizienter ist, hängt davon ab, wie häufig Sie die Sichtbarkeit der Ansicht ändern.
Wenn zum Beispiel die Ansicht die meiste Zeit nicht sichtbar ist, wäre es wahrscheinlich effizienter, sie zu GONE
zu machen, weil das System nicht unnötig Ihre unsichtbare Ansicht messen und auslegen würde, wenn sie andere anpassen muss Ansichten auf dem Bildschirm.
Wenn die Ansicht jedoch häufig zwischen sichtbar und unsichtbar wechselt, erzielen Sie möglicherweise eine bessere Leistung von INVISIBLE
, da Sie möglicherweise bei jedem Übergang eine zusätzliche Kennzahl / ein zusätzliches Layout vermeiden würden.
Ich möchte etwas Erfahrung dazu von meiner Seite hinzufügen:
Ich habe eine animierte Schaltfläche (mit ValueAnimator
). Die Schaltfläche bewegt sich von einer Seite zur anderen.
Diese Schaltfläche schaltet den Inhalt einer Liste um.
ListView
übernommen. ListView
hinzugefügt, indem ich ViewSwitcher
= & gt; das gleiche Problem. ViewSwitcher
tatsächlich nur die Ansicht auf VISIBLE oder GONE setzt, habe ich das Neuzeichnen erwartet, als ich die Liste auf VISIBLE gesetzt habe kostet zu viel UI-Thread-Zeit. Also, was ich jetzt gemacht habe, war ein FrameLayout
hinzuzufügen, die beiden ListView
s dort einzufügen und es auf INVISIBLE anstatt auf GONE zu setzen. Jetzt ist das Stottern nicht mehr zu sehen! Hoffe das hilft jemandem.
I andere Elemente sind nicht abhängig von der Sichtbarkeit Ihrer Ansicht, dann können Sie beide verwenden. Beide würden dem gleichen Zweck dienen.
Tags und Links android