Android - КоординаторLayout/NestedScrollView/Скрыть панель инструментов/Проблема с WebView

У меня проблема с этим:

<?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>

Когда я просматриваю веб-просмотр, панель инструментов скрыта или показана (отлично!), но есть проблема с веб-страницами погрузки/позиционирования. Например, если я прокручиваю до середины страницы, и я нажимаю ссылку, новая страница, которая будет загружаться, также будет расположена примерно в середине страницы, а не сверху. Как будто полосы прокрутки не перемещаются с одной страницы на другую.

если я добавлю в NestedScrollView:

android:fillViewport="true"

все работает с webview (страницы загружаются и появляются хорошо, но начиная с вершины), но я теряю Hide/Show с помощью панели инструментов: (

Есть ли у вас какое-либо представление об этой проблеме?

Заранее вам за помощь:)

(Для информации: Библиотека поддержки дизайна Android: 23.0.1)

Yop

Ответ 1

Мое предположение: Поскольку вы помещаете WebView внутри NestedScrollView, прокрутка выполняется не на уровне WebView, поэтому при загрузке новой страницы NestedScrollView остается в той же позиции.

Предложение: создайте WebViewClient и переопределите onPageStarted здесь, вы должны изменить положение прокрутки NestedScrollView на 0:

nestedScrollView.scrollTo(0, 0);