En una actividad con muchos componentes, tengo un RelativeLayout que tiene un WebView (muestra un texto simple, que no conozco su tamaño).Ajuste del tamaño dinámico del diseño en Android
Este es el código XML:
<RelativeLayout android:id="@+id/descripcionRelative" android:layout_below="@+id/descripcion_bold" android:layout_width="match_parent" android:layout_height="125dip" android:background="@drawable/my_border">
<WebView android:id="@+id/webViewDescripcion" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</RelativeLayout>
El androide atributo: layout_height de RelativeLayout es 125dip, porque si el texto es demasiado grande, quiero delimitar a 125dip. Si el texto es grande, veré texto con desplazamiento. ¡Estupendo!
Pero ... si el texto es corto, veo un montón de espacio innecesario.
Una solución es cambiar android: layout_height de RelativeLayout to wrap_content. Si el texto es corto, el componente tendrá los píxeles exactos, pero si el texto es demasiado grande, no puedo delimitarlo.
El PROBLEMA GRANDE es que no puedo calcular la altura de WebView. Si hago: descripcion_web.getHeight() que devuelve 0.
Si llamo a este método aquí, no devuelve el número así:
descripcion_web.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String url) {
super.onPageFinished(webView, url);
RelativeLayout marco = (RelativeLayout)findViewById(R.id.descripcionRelative);
System.out.println("Height webView: "+webView.getHeight());
System.out.println("Height relative: "+marco.getHeight());
}
});
Trato de llamar al método en onResume(), pero no funciona
Otro intento de resolver el problema, se establece android: layout_height para match_parent y utiliza un método View setMaximumHeight(), pero no existe. Sin embargo, existe setMinimumHeight() ...
¿Cómo puedo resolver esto? ¡Muchas gracias!