Después de cambiar una propiedad en un objeto LayoutParams, ¿debo volver a llamar a setLayoutParams?

Tengo una vista (que contiene un anuncio) que necesito escalar para que se ajuste al ancho de la pantalla en un momento determinado (después de cargar el anuncio). Entonces tengo un métodosetHeight(myView) que calcula la altura correcta para el ancho de pantalla dado y cambia los LayoutParams de la Vista en consecuencia. La parte crucial del código es esta:

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

Esto parece funcionar en su mayor parte, pero a veces la vista no se escala. Parece que solo funciona de manera consistente si agrego la siguiente línea en la parte inferior:

myView.setLayoutParams(params);

Esto también parece tener sentido, ya que Android Views llamarequestLayout() en susetLayoutParams() método. Por el contrario, no veo de qué manera un cambio en un campo público (params.height) provocaría un cambio de diseño.

Por otro lado, encuentro repetidamente tutoriales en la red donde los parámetros simplemente se cambian y luego no se vuelven a configurar en la vista.

Entonces, mi pregunta es: ¿es correcto que, para actualizar inmediatamente el diseño después de cambiar una propiedad de los LayoutParams, necesito llamarsetLayoutParams ¿de nuevo? ¿Y que simplemente cambiar la propiedad solo conducirá a un cambio de diseño en algún momento posterior cuando el cambio de diseño se active desde otro lugar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta