2011-02-24 41 views
7

Tôi đang cố gắng "animate" một WebView để thả xuống và tiết lộ nội dung của nó. Tôi đã viết một xử lý để tăng chiều cao của 1 mỗi lần, tuy nhiên, tôi đang chạy vào một ClassCastException. Mã tôi sử dụng là:thay đổi lập trình chiều cao bố cục, ClassCastException?

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

Trên wv.setLayoutParams dòng (params), tôi nhận được một:

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

Làm thế nào để sửa lỗi này?

Trả lời

24

Các tham số bố cục phải thuộc loại cha của chế độ xem của bạn. Ví dụ: nếu WebView của bạn nằm trong LinearLayout, hãy sử dụng LinearLayout.LayoutParams.

+0

Bất kỳ manh mối nào về lý do tại sao Android được lập trình theo cách này chứ không phải chỉ là một lớp LayoutParams duy nhất cho tất cả ViewGroups? Việc triển khai hiện tại có vẻ như một trong những khía cạnh kém thanh lịch của Android. – satur9nine

+0

Bởi vì tất cả bố cục không hỗ trợ các tính năng tương tự. Có một lớp LayoutParams duy nhất có nghĩa là chúng tôi sẽ sử dụng một số loại bản đồ hoặc nhồi nhét tất cả các tính năng bố cục có thể có trong đó. Nó không tốt hơn :) –

+0

Cá nhân tôi thích "sử dụng một số loại bản đồ" tùy chọn tốt hơn vì nó ẩn chi tiết thực hiện :) – satur9nine

0

sau đây là mã kích thước cài đặt hoạt động, tôi hy vọng điều này sẽ giải quyết được vấn đề của bạn. Trong trường hợp của tôi, mã này hoạt động.

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

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

sử dụng nó-

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

     webview.setLayoutParams(vc); 

Nó sẽ làm việc

+0

có hoạt động hay không? – Ravi

+0

đã hoạt động đối với tôi. làm thế nào để tôi thay đổi nó để phù hợp với chiều cao của cha mẹ? – Guy

+0

bạn có thể cho tôi xem mã đầy đủ cho điều này không? – user2899094

Các vấn đề liên quan