2010-07-10 31 views
6

Tôi vẽ một số biểu đồ canvas trên webview android và sử dụng javascript để thay đổi biểu đồ chỉ bằng cách ẩn và hiển thị và cũng thay đổi tiêu đề bằng cách đặt lại innerHTML của nó.Vấn đề lạ trên android webview với canvas

Tiêu đề này là chỉ là một html bình thường thẻ "<div id='title'></div>",

Vấn đề là trang không hiển thị tốt khi tôi chuyển sang bảng xếp hạng, ví dụ. khi tôi chọn lựa để hiển thị biểu đồ tiếp theo và thay đổi innerHTML của tiêu đề, tiêu đề có vẻ như 'nhớ' nội dung trước đó của nóHTML và có vẻ như một văn bản chồng lên nhau.

Nếu tôi thay đổi hướng của điện thoại theo cách thủ công, có vẻ như làm cho webview vẽ lại nội dung của nó (không làm mới), thì mọi thứ sẽ ổn.

Bất kỳ ý tưởng nào về điều này? hoặc tôi có thể mô phỏng sự kiện thay đổi định hướng để làm cho webview của tôi vẽ lại trang của nó để làm việc xung quanh nó?

Trả lời

0

Nếu bạn gọi invalidate() từ trong số View, bạn sẽ làm cho nó tự vẽ lại. Khi bạn có thay đổi định hướng, View của bạn không hợp lệ với invalidate() buộc nó phải vẽ lại nội dung của nó. Bạn có thể sử dụng phương thức invalidate() này để vẽ lại nội dung của mình mà không thay đổi hướng.

invalidate() là phương thức công khai của View và có thể được gọi ở bất kỳ đâu trong phạm vi.

1

Sự cố này dường như xuất hiện khi bạn đang sử dụng nền trong suốt với chế độ xem web của bạn. Hãy thử thêm điều này vào CSS của bạn:

body { 
    background-color:black; 
} 

Hoặc bất kỳ điều gì bạn muốn màu nền của mình.

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