2011-02-24 10 views
7

Sto provando a "animare" una WebView per farlo cadere e rivelarne il contenuto. Ho scritto un gestore per aumentare l'altezza di 1 ogni volta, tuttavia, sto correndo in una ClassCastException. Il codice che sto usando è:cambia automaticamente l'altezza del layout, ClassCastException?

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

Sulle wv.setLayoutParams linea (params), ottengo un:

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

Come posso risolvere questo problema?

risposta

24

I parametri di layout devono essere del tipo del genitore della vista. Ad esempio, se la tua WebView è all'interno di un LinearLayout, usa LinearLayout.LayoutParams.

+0

Qualsiasi indizio sul perché Android è stato programmato in questo modo piuttosto che una singola classe LayoutParams per tutti ViewGroups? L'attuale implementazione sembra uno degli aspetti meno eleganti di Android. – satur9nine

+0

Perché tutti i layout non supportano le stesse funzionalità. Avere una singola classe LayoutParams significa che dovremmo usare una sorta di mappa o racchiudere tutte le possibili caratteristiche di layout in esso contenute. Non è meglio :) –

+0

Personalmente mi piace l'opzione "usa una sorta di mappa" poiché nasconde i dettagli di implementazione :) – satur9nine

0

seguito è il codice dell'impostazione delle dimensioni dell'attività, spero che questo risolva il problema. Nel mio caso questo codice funziona.

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); 

Funzionerà

+0

funziona o no ?? – Ravi

+0

ha funzionato per me. come lo cambio per abbinare l'altezza del genitore? – Guy

+0

hey puoi mostrarmi il codice completo per questo? – user2899094

Problemi correlati