Android WebView - 滚动条不填充 layout_height

Posted

技术标签:

【中文标题】Android WebView - 滚动条不填充 layout_height【英文标题】:Android WebView - scrollbar don't fill the layout_height 【发布时间】:2019-04-25 04:03:37 【问题描述】:

我有一个包含大文本内容的 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_
    android:layout_
    android:orientation="vertical">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_
        android:layout_
        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_
        android:layout_>


        <WebView
            android:id="@+id/webView"
            android:layout_
            android:layout_ />


    </LinearLayout>
</LinearLayout>

【问题讨论】:

你能滚动最后一行文本还是隐藏在底部菜单按钮后面? 我可以转到 Html 内容(文本)的最后一行,但是当我在那里时,滚动条消失了。 我认为从您的 html 视口设置中删除 content=user-scalable=no 或将其设置为 yes 应该可以解决问题。 赏金即将结束,给最接近的答案,否则一切都浪费了 【参考方案1】:

我通过在 WebView 布局中添加以下内容解决了这个问题:

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

【讨论】:

你能解释一下layout_alignParentToplayout_alignParentLeftlayout_alignParentStartLinearLayout中是如何工作的【参考方案2】:

试试这个:-

<WebView android:layout_ 
android:layout_ 
android:id="@+id/webView" />

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

【讨论】:

fill_parent is deprecated【参考方案3】:

您可以为父布局添加内边距

    <WebView android:layout_ 
    android:layout_ 
    android:id="@+id/webView"
    android:padding="3dp"/>

【讨论】:

以上是关于Android WebView - 滚动条不填充 layout_height的主要内容,如果未能解决你的问题,请参考以下文章

如何让ScrollView 的滚动条不显示

设置 ScollView 滚动条不消失

Jquery.nicescroll()插件:页面初始化滚动条不显示问题

如何使滚动条不可见[重复]

Android WebView 平滑滚动

如何以编程方式滚动 Android WebView