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);