Не удается заставить zoom работать в WebView в Android Studio

#android #webview #zooming

#Android #webview #масштабирование

Вопрос:

Я пытаюсь заставить zoom работать в моем WebView в моем приложении Android Studio, но безрезультатно. Когда я пытаюсь увеличить масштаб, он просто немного расширяется до границ экрана. Однако функция масштабирования работает, если я обрабатываю свою веб-страницу напрямую в браузере Chrome. Ниже приведен мой код.

     webView.setInitialScale(270);
    webView.setPadding(0, 0, 0, 0);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(false);
    webView.getSettings().setUseWideViewPort(true);
     Bundle extras = getIntent().getExtras();
    url = extras.getString("url");

     webView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });
  

Вот мой макет.

     <WebView
    android:layout_width="fill_parent"
    android:layout_height="495sp"
    android:id="@ id/web_view"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"></WebView>
  

Тот факт, что он работает в браузере Chrome, но не в моем приложении, ставит меня в тупик. Я изменил начальное значение scale на 100, и вид стал очень маленьким, но это позволило мне уменьшить его до пределов ширины экрана. Однако, если я установлю значение initialscale равным 270, WebView заполнит границы экрана так, как я хочу. Это просто не позволит мне увеличивать изображение за пределы физических границ экрана, как это происходит в Chrome. У кого-нибудь есть какие-либо предложения о том, как увеличить масштаб за пределы экрана?

Комментарии:

1. Находится ли ваш webview внутри ScrollView? Значение высоты должно быть в dp не sp

2. Я не думаю, что мой webview находится внутри scrollview, по крайней мере, я никогда не настраивал его таким образом. Все, что у меня есть, это webview и 3 textviews под webview в моем макете.

Ответ №1:

Попробуйте добавить эти свойства

 /*--WebView--*/
  @SuppressLint("SetJavaScriptEnabled")
   private void callWebView(String url) {

     webView.getSettings().setJavaScriptEnabled(true);
     webView.getSettings().setScrollBarStyle(View.VISIBLE);
     webView.getSettings().setBuiltInZoomControls(true);
     webView.getSettings().setSupportZoom(true);
     webView.getSettings().setLoadWithOverviewMode(true);
     webView.getSettings().setUseWideViewPort(true);
     webView.getSettings().setAllowContentAccess(true);
     webView.setWebViewClient(new WebViewClient());          
     webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);     
     webView.setScrollbarFadingEnabled(false);
     webView.setScrollBarSize(20);
     webView.loadUrl(url);

  }
  

Комментарии:

1. Я внес ваши изменения, но масштабирование по-прежнему ограничено исходным отображением. Похоже, что есть жесткая граница, которая просто ограничивает мой масштаб.