Android WebView HTML5画布错误

Android WebView HTML5画布错误,android,html,webview,html5-canvas,chart.js,Android,Html,Webview,Html5 Canvas,Chart.js,我有一个Android应用程序,它使用WebView加载使用HTML的GUI。有一个元素,我使用Chart.js Javascript库绘制图表以绘制图表。 它在3台设备上进行了测试。在其中两个平台上运行良好(安卓2.2和2.6),但在安卓的后续版本(4.1.2)上,画布使其加倍:所有图表在画布上都可见两次,其中一个稍微向上和向左移动 画布有什么问题?为什么它会使渲染的内容加倍?我怎么能让它只渲染一次 代码如下: HTML: 其中graphSelection是我们选择图表的元素, JI.get

我有一个Android应用程序,它使用WebView加载使用HTML的GUI。有一个元素,我使用Chart.js Javascript库绘制图表以绘制图表。 它在3台设备上进行了测试。在其中两个平台上运行良好(安卓2.2和2.6),但在安卓的后续版本(4.1.2)上,画布使其加倍:所有图表在画布上都可见两次,其中一个稍微向上和向左移动

画布有什么问题?为什么它会使渲染的内容加倍?我怎么能让它只渲染一次

代码如下:

HTML:

其中graphSelection是我们选择图表的元素,
JI.getGraphData返回Chart.js的JSON数据。

如果您不希望元素上的“position:fixed;”导致问题, 画布父元素不应具有值为“hidden”的css属性“overflow”

因此,在父元素上定义类似“overflow:visible;”的内容。

尝试以下操作:

// If Samsung android browser is detected
if (window.navigator && window.navigator.userAgent.indexOf('534.30') > 0) {

    // Tweak the canvas opacity, causing it to redraw
    $('canvas').css('opacity', '0.99');

    // Set the canvas opacity back to normal after 5ms
    setTimeout(function() {
        $('canvas').css('opacity', '1');
    }, 5);

}

我也遇到了这个问题。我用
position:relative、left和-webkit变换代替margin来解决这个问题。问题意外解决。

尝试通过样式标记将图形位置固定到工作的画布html代码中。它搞乱了其他一些事情,但这个图表是有效的。谢谢现在出现了一个新问题,我把它贴在下面,实际上我通过设置
overflow:hidden解决了一个类似的问题到画布的父元素。
var canvas=document.getElementById("graph_canvas");
canvas.height=200;
canvas.width=200;
var graphSelection=document.getElementById("graphSelection");
var ctx = canvas.getContext("2d");
var data_=JSON.parse(JI.getGraphData(graphSelection.value));    
var myNewChart = new Chart(ctx).Line(data_);
// If Samsung android browser is detected
if (window.navigator && window.navigator.userAgent.indexOf('534.30') > 0) {

    // Tweak the canvas opacity, causing it to redraw
    $('canvas').css('opacity', '0.99');

    // Set the canvas opacity back to normal after 5ms
    setTimeout(function() {
        $('canvas').css('opacity', '1');
    }, 5);

}