问题
I have a problem with that :
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
When I scrolls in the webview, the toolbar is hidden or shown (perfect !) but there is a problem with the loading / positioning web pages. For example, if I scrolls to the middle of a page and I click on a link, the new page that will load also be located at approximately the middle of the page instead of on top. As if scrollbars were not moving from one page to another.
if I add to the NestedScrollView:
android:fillViewport="true"
everything works with the webview (pages load and appear well although starting from the top) but I lose the Hide/Show with the toolbar :(
Do you have any idea about this problem?
Thank you in advance for your help :)
(For information : Android Design Support Library : 23.0.1)
Yop
回答1:
My assumption:
Since you are putting the WebView
inside a NestedScrollView
the scrolling is not done on the WebView
level so when you load a new page the NestedScrollView
stays in the same position.
Suggestion:
create a WebViewClient
and override onPageStarted
here you should change the NestedScrollView scroll position to 0:
nestedScrollView.scrollTo(0, 0);
来源:https://stackoverflow.com/questions/32596356/android-coordinatorlayout-nestedscrollview-hide-show-toolbar-issue-with-webvie