Android WebView不仅仅是响应式网站的全宽



我有一个简单的网络视图:

<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());

最新更新