代码之家  ›  专栏  ›  技术社区  ›  Alin

Android KitKat网页视图html页面的宽度

  •  2
  • Alin  · 技术社区  · 12 年前

    该问题仅出现在具有新WebView机制的KitKat上。

    基本上,我在连续加载12个图像。我希望WebView加载一行中的所有图像,并自动缩放WebView以填充整个行。

    如何在android 4.4之前工作

    • 将图像加载到行上,并进行缩放以适合整个行。用户可以向内和向外滚动

    如何在4.4上工作

    • 图像被包裹,所以我绘制了第一个图像,下一个图像在它下面,而不是在它的右边

    html加载图像如下:

    <meta name="viewport" content="width=device-width, height=device-height, minimum-scale=0.3, user-scalable=yes, initial-scale=1"/>
    
    <style type="text/css">
        body {margin: 0; padding: 0; border: 0; float: left; white-space: nowrap;}
    
        .Image .Tile-0-0 {background: url(tiles/tile_0_0.png) no-repeat; width: 128px; height: 128px; float: left;}
    .....
    
    and then
    <body>
    
    <div class="Image">
        <div class="tile-0-0"></div>
        <div class="tile-1-0"></div>
        .......<br/>
    

    有什么想法吗?我的猜测是,不知怎么的,我需要告诉webview适合整个行,而不是包裹在设备的宽度上。

    我该怎么解决?

    1 回复  |  直到 12 年前
        1
  •  0
  •   marcin.kosiba    12 年前

    Android 4.4(KitKat)的WebView(基于Chromium源代码)与之前的Android版本完全不同。有一个 migration guide 描述了您可能遇到的常见问题。

    在您的情况下,我首先要检查的是HTML是否在Chrome中正确呈现。

    如果确实如此,请尝试在清单中将targetSdk设置为19(这将禁用一些怪癖),看看这是否有帮助。

    如果没有,这可能是两个WebView实现之间CSS的解释/布局方式的改变。试着摆弄一下CSS,看看这是否有用。 Using DevTools 应该让它更简单。

    另一个要看的是视口-查看两个版本之间的document.documentElement.clientWidth是否不同。如果是这样,那就是它看起来不一样的原因。如果使用的是wrap_contents高度,请尝试使用match_parent/a固定值。