Eine übergeordnete Ansicht kann measure () mehr als einmal auf ihren untergeordneten Elementen aufrufen. Zum Beispiel kann der Elternteil jedes Kind einmal mit nicht spezifizierten Dimensionen messen, um herauszufinden, wie groß sie sein wollen, und dann measure () erneut mit tatsächlichen Zahlen aufrufen, wenn die Summe aller unbeschränkten Kindergrößen zu groß oder zu klein ist ( Das heißt, wenn die Kinder untereinander nicht übereinstimmen, wie viel Platz sie bekommen, werden die Eltern eingreifen und die Regeln für den zweiten Durchgang festlegen. wie Ссылка sagt.
In der Vergangenheit, als ich ähnliche Probleme hatte und es war, weil mein "onAnAction" -Code im Klassencode AKA der Aktivität in der onCreate für die Aktivität statt in der Klasse der benutzerdefinierten Ansichten gewesen sein sollte.
Das könnte funktionieren, aber es gibt keine Garantien. Es erfordert normalerweise ein wenig Geduld und Verständnis für den androiden Lebenszyklus.
Vermissen Sie etwas in Ihrer Frage? Wenn Sie onMeasure überschreiben, müssen Sie setMeasuredDimension (int, int) aufrufen, sonst erhalten Sie eine IllegalStateException. In Ihrer Frage scheinen Sie keine Ausnahmen zu bekommen.
Tags und Links android android-custom-view onmeasure