RelativeLayout misst alle seine Kinder zweimal. Dies kann zu Leistungsproblemen führen. Werden im Constraint-Layout die Kinder nur einmal gemessen?Wie oft misst ConstraintLayout jedes seiner Kinder?
2
A
Antwort
3
ConstraintLayout
erfordert bis zu zwei Messdurchgänge.
Wenn Sie sich die Quelle ConstraintLayout
ansehen, werden Sie sehen, dass ihre Methode onMeasure()
ihre Kinder innerhalb einer internalMeasureChildren()
-Hilfsmethode misst. Als nächstes wertet es einige Einschränkungen aus. Schließlich ruft ConstraintLayout
child.measure()
auf seinen Kindern ein zweites Mal innerhalb einer Schleife auf.
Quelle: dekompilierte die Klassendateien, da die Quelle zu diesem Zeitpunkt nicht verfügbar ist.
Woher bekomme ich diese Quellen? – Zielony
Es wird nicht jedes Mal zweimal gemessen. Es muss nur zweimal für Kinder gemessen werden, deren Breite sich ändern kann (weil es die Höhe beeinflussen könnte). –
@Zielony, habe ich die Klassendatei dekompiliert, da die Quelle noch nicht verfügbar ist. –