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具有类似的功能。