Android WebView - полоса прокрутки не заполняет layout_height

У меня есть WebView с большим текстовым содержимым. Я использую следующие настройки WebView:

    settings.setJavaScriptEnabled(true);
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);
    settings.setSupportZoom(false);
    settings.setBuiltInZoomControls(false);
    webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    webview.setScrollbarFadingEnabled(false);

Настройки области просмотра HTML:

<meta name = "viewport" content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

Проблема в том, что полоса прокрутки выходит за пределы макета, как показано ниже:

Android WebView - полоса прокрутки не заполняет layout_height

Мой макет Android:

<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    android:orientation = "vertical">

    <androidx.appcompat.widget.Toolbar
        android:id = "@+id/toolbar"
        android:layout_width = "match_parent"
        android:layout_height = "?android:attr/actionBarSize"
        android:background = "@color/colorPrimary"
        android:elevation = "4dp"
        android:theme = "@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme = "@style/ThemeOverlay.AppCompat.Light" />

    <LinearLayout
        android:id = "@+id/frame_container"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent">


        <WebView
            android:id = "@+id/webView"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent" />


    </LinearLayout>
</LinearLayout>

Можете ли вы прокрутить последнюю строку текста или ее скрытие за кнопками нижнего меню?

Anand Phadke 22.11.2018 13:57

Я могу перейти к последней строке содержимого Html (текста), но когда я там, полосы прокрутки больше нет.

Apopei Andrei Ionut 22.11.2018 14:21

Я думаю, что удаление content = user-scaleable = no или установка его на yes в настройках окна просмотра html должно помочь.

dglozano 28.11.2018 01:19

награда скоро закончится, дайте ближайший ответ или все пропадет.

Pemba Tamang 04.12.2018 11:22
7
4
896
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я исправил проблему, добавив в макет WebView следующее:

android:layout_alignParentTop = "true"
android:layout_alignParentLeft = "true"
android:layout_alignParentStart = "true"

Можете ли вы объяснить, как layout_alignParentTop, layout_alignParentLeft, layout_alignParentStart будут работать внутри LinearLayout

AskNilesh 29.11.2018 05:26

попробуй это :-

<WebView android:layout_width = "fill_parent" 
android:layout_height = "fill_parent" 
android:id = "@+id/webView" />

я исправляю эту проблему с помощью этого кода

fill_parent устарел
AskNilesh 29.11.2018 05:24

Вы можете добавить отступ в родительский макет

    <WebView android:layout_width = "match_parent" 
    android:layout_height = "match_parent" 
    android:id = "@+id/webView"
    android:padding = "3dp"/>

Другие вопросы по теме