【发布时间】:2014-03-07 17:46:40
【问题描述】:
在 Android 网络视图中,我加载了一个简单的 html 页面,该页面的 div 设置为 100% 的宽度和高度。我在浏览器中工作正常,但是在 Galaxy Nexus 4.4.2 上我看不到内容 div。 调试 div 好像内容没有宽度。
这里是 webview 设置:
setScrollContainer(false);
setBackgroundColor(Color.RED);
setHorizontalScrollBarEnabled(false);
setHorizontalScrollbarOverlay(false);
setVerticalScrollBarEnabled(false);
setVerticalScrollbarOverlay(false);
this.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
WebSettings ws = getSettings();
ws.setSupportZoom(false);
ws.setJavaScriptEnabled(true);
ws.setUseWideViewPort(true);
ws.setLoadWithOverviewMode(true);
ws.setCacheMode(WebSettings.LOAD_NO_CACHE);
ws.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
ws.setAllowFileAccess(true);
ws.setAllowFileAccessFromFileURLs(true);
这里是示例 html:
<html>
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="cache-control" content="no-cache" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta id="myvp" name="viewport" content="width=400, height=300, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="./main.css">
</head>
<body>
<div class="component">
<input type="text">
</div>
</body>
</html>
这里是css:
body {
background-color: blue;
}
.component {
width: 100%;
height: 100%;
background-color: green;
overflow: hidden;
}
我希望看到一个带有文本字段的绿色框。 相反,我只看到身体的蓝色背景。 如果我删除溢出,我可以看到文本字段,但它是不可选的 如果将 100% 替换为固定值,我将看到一个绿色框,但文本字段再次不可选择。
可能组件 div 没有显示,因为当使用 100% 时,它的 w/h 为 0。 有人知道为什么吗? 还有为什么我无法输入任何文字。
谢谢
【问题讨论】:
-
为什么要这样设置视口?
-
有问题吗?最初我们在 javascript 中设置视口以匹配 webview 的大小(不是全屏)。这里我们放了一些固定值来简化调试
标签: android css webview android-4.4-kitkat