Android WebView - 滚动条不填充layout_height

7

我有一个包含大量文本内容的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布局是:
<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
我可以到达Html内容(文本)的最后一行,但当我到达那里时,滚动条消失了。 - Apopei Andrei Ionut
我认为从你的HTML视口设置中删除content=user-scalable=no或将其设置为yes应该可以解决问题。 - dglozano
悬赏即将结束,将其给予最接近的答案或者全部浪费。 - Pemba Tamang
3个回答

1
我通过在WebView布局中添加以下内容解决了问题:
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"

你能解释一下 layout_alignParentTop, layout_alignParentLeft, layout_alignParentStartLinearLayout 中的工作原理吗? - AskNilesh

1
尝试一下这个:-
<WebView android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:id="@+id/webView" />

我用这段代码解决了这个问题。

fill_parent已被弃用。 - AskNilesh

0

您可以为父布局添加填充

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接