我有一个简单的网络视图:
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
叫这样称呼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://example.com");
}
问题是我尝试渲染的网站没有进入响应模式。 宽度超出屏幕,导致我滚动。
我尝试过宽度,包括:fill_parent、match_parent 和wrap_content,但它们都不起作用。
我该怎么做才能使网页呈现响应式,停留在屏幕范围内而不水平滚动?
您缺少几个使 WebView 呈现更像移动浏览器的设置调用:
myWebView.getSettings().setUseWideViewPort(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
(可选)您还可以启用收缩缩放:
myWebView.getSettings().setSupportZoom(true);
myWebView.getSettings().setBuiltInZoomControls(true);
myWebView.getSettings().setDisplayZoomControls(false);
正如@Hylianpuffball正确指出的那样,您的网站最好使用<viewport>
标签来控制其呈现。
我找到了使用 setScale 正确呈现 webview 的最方法:
webView.setInitialScale((int) (getScale());
是 getScale 方法使用以下算法计算屏幕尺寸:
指标密度*10
然后,您可以通过除以小于 1.5 的值来使用刻度因子对其进行微调
错误显示在行中
webView.setInitialScale((int) (getScale());