19

我想将 NestedScrollView 与 CollapsingToolbarLayout 一起使用。在 NestedScrollView 中有很长的内容。不幸的是,我无法滚动到最后。其中一些长内容被剪掉了。当我转动屏幕时奇怪的是,滚动工作正常并且所有内容都可见。

<android.support.design.widget.CoordinatorLayout
    android:fitsSystemWindows="true"
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <android.support.design.widget.AppBarLayout
        android:fitsSystemWindows="true"
        android:layout_height="wrap_content"
        android:layout_width="match_parent">

        <android.support.design.widget.CollapsingToolbarLayout
            android:fitsSystemWindows="true"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                android:fitsSystemWindows="true"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"
                android:scaleType="centerCrop"
                android:src="@drawable/u8"
                app:layout_collapseMode="parallax"/>

            <android.support.v7.widget.Toolbar
                android:layout_height="?attr/actionBarSize"
                android:layout_width="match_parent"
                app:layout_collapseMode="pin"/>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:clipToPadding="false"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:orientation="vertical">

            <!-- lots of widgets-->

        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>

编辑:我注意到剪切内容的高度与工具栏高度相同。

4

7 回答 7

11

答案取自这里。将 paddingBottom 添加到 NestedScrollView 为我解决了这个问题:

android:paddingBottom="<toolbar height in collapsed state>"
于 2016-05-01T08:55:40.980 回答
8

我也遇到了类似的问题,即当键盘打开时 NestedScrollView 不会滚动到最后。

在 NestedScrollView 之后放置 AppBarLayout 对我有用。请让我知道它是否适合您。

于 2016-03-04T05:19:29.697 回答
6

我遇到过同样的问题。此错误的原因之一是未设置 SupportActionBar

final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

(我没有这样做,因为我只需要工具栏才能使折叠工具栏按预期工作,而且我认为 setSupportActionBar 并不重要)

另一个是:它在活动内部工作,但在片段中无法正常工作(可能是我使用的特定版本的支持库的问题)

于 2017-12-11T14:31:19.723 回答
4

对我来说这是什么原因是我的 CollapsingToolbarLayout 中的“exitUntilCollapsed”行: app:layout_scrollFlags="scroll|exitUntilCollapsed">

与“滚动”一起使用时会导致问题。我也不能使用marginBottom,因为我有一个即时翻译选项,它用新内容刷新TextViews,当发生这种情况时,它神秘地决定滚动得更远,最终在底部出现一个看起来非常糟糕的空白空间。

我改用“enterAlwaysCollapsed”解决了它,并将我的工具栏移到了最顶部,在折叠之外。这不是我想要的,但到目前为止我找不到解决方案。

于 2018-06-23T19:42:59.937 回答
3

问这个问题已经有一段时间了。但也许像这个答案minHeight一样在 CollapsingToolbarLayout 中设置属性也可能对某人有所帮助。

于 2017-06-20T13:22:05.633 回答
2

由于工具栏已固定(使用 CollapsingToolbar)。Nestedscrollview 无法随屏幕调整底部视图。

如果在 setSupportActionBar 上设置工具栏。NestedScrollView 将适合屏幕。

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar); 
于 2018-09-23T14:43:09.743 回答
0

使用 app:layout_behavior="@string/appbar_scrolling_view_behavior" 属性和嵌套滚动视图它将起作用

<android.support.design.widget.CoordinatorLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        <android.support.design.widget.AppBarLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <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"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

        </android.support.design.widget.AppBarLayout>
        <android.support.v4.widget.NestedScrollView
                android:id="@+id/task_recycler_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fillViewport="true"
                app:layout_behavior="@string/appbar_scrolling_view_behavior">
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>
于 2019-07-11T06:15:50.250 回答