android - CoordinatorLayout / NestedScrollView /隐藏 - 显示工具栏/ WebView问题

时间:2015-09-15 21:56:22

标签: android webview toolbar nestedscrollview

我有一个问题:

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

当我在webview中滚动时,工具栏被隐藏或显示(完美!)但是加载/定位网页存在问题。 例如,如果我滚动到页面的中间并单击链接,则将加载的新页面也位于页面的大约中间而不是顶部。好像滚动条没有从一个页面移动到另一个页面。

如果我添加到NestedScrollView:

android:fillViewport="true"

一切都适用于webview(页面加载并且从顶部开始显示得很好)但是我丢失了隐藏/显示工具栏:(

你对这个问题有什么看法吗?

提前感谢您的帮助:)

(有关信息:Android设计支持库:23.0.1)

1 个答案:

答案 0 :(得分:3)

我的假设: 由于您将WebView放在NestedScrollView内,因此在WebView级别无法完成滚动,因此当您加载新页面时,NestedScrollView会保持在同一位置。< / p>

建议: 创建WebViewClient并覆盖onPageStarted,您应该将NestedScrollView滚动位置更改为0:

nestedScrollView.scrollTo(0, 0);