Muss ich setLayoutParams nach dem Ändern einer Eigenschaft für ein LayoutParams-Objekt erneut aufrufen?

Ich habe eine Ansicht (die eine Anzeige enthält), die ich skalieren muss, um sie zu einem bestimmten Zeitpunkt (nach dem Laden der Anzeige) an die Bildschirmbreite anzupassen. Also ich habe eine MethodesetHeight(myView) berechnet die richtige Höhe für die angegebene Bildschirmbreite und ändert die LayoutParams der Ansicht entsprechend. Der entscheidende Teil des Codes ist:

LayoutParams params = myView.getLayoutParams();
int width = myView.getWidth();
if (params != null && width > 0) {
    params.height = (int) Math.round(ratio * width);
}

Dies scheint zum größten Teil zu funktionieren, aber manchmal ist die Ansicht nicht skaliert. Es scheint nur konsequent zu funktionieren, wenn ich die folgende Zeile unten hinzufüge:

myView.setLayoutParams(params);

Dies scheint auch Sinn zu machen, da Android Views @ aufrufrequestLayout() in ihremsetLayoutParams() Methode. Umgekehrt sehe ich keine Möglichkeit, wie sich in einem öffentlichen Bereich params.height) würde eine Layoutänderung auslösen.

uf der anderen Seite finde ich immer wieder Tutorials im Netz, bei denen die Parameter einfach geändert und dann nicht wieder auf die Ansicht gesetzt werde

Also, meine Frage ist: Ist es richtig, dass ich @ aufrufen muss, um das Layout sofort zu aktualisieren, nachdem ich eine Eigenschaft der LayoutParams geändert habsetLayoutParams nochmal? Und dass eine einfache Änderung der Eigenschaft erst zu einem späteren Zeitpunkt zu einer Layoutänderung führt, wenn die Layoutänderung von einer anderen Stelle aus ausgelöst wird?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage