2011-02-24 42 views
7

Estoy tratando de "animar" un WebView para desplegar y revelar su contenido. He escrito un controlador para aumentar la altura en 1 cada vez, sin embargo, me encuentro con una ClassCastException. El código que estoy usando es :programatically cambiar altura de diseño, ClassCastException?

WebView.LayoutParams params = new WebView.LayoutParams(wv.getLayoutParams()); 
params.height = height; 
wv.setLayoutParams(params); 
height++; 
this.sleep(20); 

En los wv.setLayoutParams línea (params), me sale un:

java.lang.ClassCastException: android.widget.AbsoluteLayout$LayoutParams 

¿cómo puedo solucionar esto?

Respuesta

24

Los parámetros de diseño deben ser del tipo del elemento primario de su vista. Por ejemplo, si su WebView está dentro de LinearLayout, use LinearLayout.LayoutParams.

+0

Cualquier pista de por qué Android se programó esta manera en lugar de sólo una única clase LayoutParams para todos los ViewGroups? La implementación actual parece uno de los aspectos menos elegantes de Android. – satur9nine

+0

Porque todos los diseños no admiten las mismas características. Tener una sola clase de LayoutParams significa que usaríamos algún tipo de mapa o incluiríamos todas las características de params de diseño posibles en él. No es mejor :) –

+0

Personalmente me gusta más la opción "usar algún tipo de mapa" ya que oculta los detalles de implementación :) – satur9nine

0

siguiente es el código de configuración del tamaño de la actividad, espero que esto resuelva su problema. En mi caso, este código funciona.

WindowManager.LayoutParams params = getWindow().getAttributes();  
     params.height = 200; 
     params.width = 220;   

     this.getWindow().setAttributes(params); 
4

uso IT

ViewGroup.LayoutParams vc=webview.getLayoutParams(); 
     vc.height=700; 
     vc.width=450; 

     webview.setLayoutParams(vc); 

Se trabajará

+0

trabajando o no ?? – Ravi

+0

funcionó para mí. ¿Cómo lo cambio para que coincida con la altura de los padres? – Guy

+0

¿me puedes mostrar el código completo para esto? – user2899094

Cuestiones relacionadas