我创建了一个在Samsung Galaxy Tab 10.1上运行的Android 3.1 Tablet应用程序,该应用程序在WebView中使用可滚动div(overflow-y:scroll
)呈现HTML5应用程序。容器可滚动的div被设置为特定的高度,并且在加载时动态创建子div列表。Android 3.1 WebView溢出滚动 - 不滚动滚动的长列表
在Android 3.1设备的浏览器中,可滚动容器div似乎剪裁长列表的可滚动内容,只有在用户将未呈现内容滚动到视图中时才刷新带有内容的溢出div。但是,在Android WebView中,滚动的div不会而不是刷新并在剪辑的内容滚动到视图中时显示更多内容。
尽管其他文章已经提出了iScroll,但是当我的测试设备(Galaxy Tab 10.1)在一个HTML页面上需要多个可滚动div时,我发现它非常缓慢。
示例应用代码:
public class MyActivity extends Activity {
WebView mWebView;
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebViewClient(new WebViewClient());
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.loadUrl("file:///android_asset/index.html");
}
...
}
例溢出股利页(index.html
) - jQuery的用于为表创建随机数:提前
<html>
<head>
<style type="text/css">
#overflow_container {background: #cecece; height:600px; overflow-y: scroll;}
p {margin-left:20px;}
ol {padding-top:0px;margin-top:0px;}
ol li {line-height:48px;border-bottom:1px solid white;height:48px;}
.container { color:#333;}
</style>
<script src="http://jquery.com/src/jquery-latest.js"></script>
<script type="text/javascript">
$(function() {
$("#content_list").html("<ol></ol>");
for(var i = 0; i< 100; i++) {
$("#content_list ol").append("<li>" + (Math.random() * 1000) + "</li>");
}
});
</script>
</head>
<body>
<div class="container">
<h2>Overflow Contents</h2>
<p>Ordered List of Random Numbers inside a scrollable div <code>overflow-y:scroll</code></p>
<div id="overflow_container">
<div id="content_list">
</div>
</div>
</div>
</body>
</html>
感谢。