Android 有效调整Web视图大小

Android 有效调整Web视图大小,android,android-webview,android-toolbar,android-scroll,android-measure,Android,Android Webview,Android Toolbar,Android Scroll,Android Measure,我已经在我的应用程序中实现了浮动工具栏(向下滚动隐藏,向上显示),现在我在网络视图中看到一些闪烁的视图,确切地说,这些视图粘贴在底部。我注意到,当我调整WebView的大小时,由于Toolbar偏移量的变化,会出现这种情况,如下所示: appBarLayout.addOnOffsetChangedListener(this); @Override public final void onOffsetChanged(AppBarLayout appBarLayout, int verticalO

我已经在我的应用程序中实现了浮动
工具栏
(向下滚动隐藏,向上显示),现在我在
网络视图
中看到一些闪烁的视图,确切地说,这些视图粘贴在底部。我注意到,当我调整
WebView
的大小时,由于
Toolbar
偏移量的变化,会出现这种情况,如下所示:

appBarLayout.addOnOffsetChangedListener(this);

@Override
public final void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
    boolean scrollFlagsSet = ((AppBarLayout.LayoutParams) getToolbar().getLayoutParams()).
            getScrollFlags() != 0;
    int bottom = (!scrollFlagsSet ? 0 : getToolbarHeightAttr()) + verticalOffset;
    swipeRefreshLayout.setPadding(0, 0, 0, bottom);
    swipeRefreshLayout.requestLayout();
}
swipeRefreshLayout
WebView
s父级。方法可以适当调整WebView的大小,而且非常有效,没有延迟(编辑:在旧设备上有点延迟)。但是当
WebView
加载一些视图粘贴到底部的站点时,这些视图在调整大小时会闪烁。我甚至可以在底部
WebView
s边缘之间的间隙中看到文本(向下滚动时存在间隙,向上滚动时视图在底部被剪切)。我在屏幕上捕捉到了这种行为(蓝色-
工具栏
,灰色-
网络视图
,浅蓝色和橙色-在粘贴到底部的网络视图视图中)。看起来只有几毫秒(一帧?),然后回到底部的固定位置。如何解决这个问题

在Chrome或Firefox中加载的同一页面行为正常,这些视图粘贴在底部并具有固定位置,不会随着滚动/工具栏偏移量的变化而闪烁

我正在使用。我的应用程序使用了大量加载到
活动
中的片段,这些片段都在扩展抽象
基本活动
,我在其中有
协调布局
WebView
属于片段并放置在不同的容器中,没有选项将
WebView
直接放置到
CoordinatorLayout

编辑:XMLs

活动:

<androidx.coordinatorlayout.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main_cooridnator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.drawerlayout.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <FrameLayout
        android:id="@+id/activity_main_content_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white" />

片段:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    android:id="@+id/fragment_webview_swipe_refresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <my.package.widgets.web.NestedWebView
        android:id="@+id/fragment_webview_webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbarStyle="outsideOverlay" />


您能提供XML布局文件吗?我很清楚XML是不相关的,但我已经发布了
活动
片段
。事实上,在我自己完成后,我是一个漂亮的舒尔,如果没有自己的铬实现,它是不可能完成的,很遗憾……预加载WebVIEW页面,以防你稍后加载WebVIEW(调整工具栏大小),考虑预加载它的内容。嗯,页面加载需要更多的时间,并且“更引人注目”的是这个“跳”,这根本不是一个解决方案。当
WebView
已经初始化并加载了内容/网页,然后用户开始滚动geckodisplay的方法setVerticalClipping(int clippingHeight)时,就是这种情况。我们希望WebView具有类似的功能。