web-dev-qa-db-ja.com

CollapsingToolbarLayoutと一緒に使用すると、NestedScrollViewは最後までスクロールしません

CollapsingToolbarLayoutでNestedScrollViewを使用したいと思います。 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>

編集:カットコンテンツの高さがツールバーの高さと同じであることに気づきました。

15

ここ からの回答。 NestedScrollViewにpaddingBottomを追加すると、この問題が解決しました。

Android:paddingBottom="<toolbar height in collapsed state>"
7
Darshan Dorai

また、キーボードが開いているときにNestedScrollViewが最後までスクロールしないという同様の問題に直面していました。

NestedScrollViewの後にAppBarLayoutを配置すると、うまくいきました。それがあなたのために働くかどうか私に知らせてください。

6
Mithun Raman

私も同じ問題を抱えていました。このバグの理由の1つは、SupportActionBarを設定しなかったことです。

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

(折りたたみツールバーが期待どおりに機能するためだけにツールバーが必要であり、setSupportActionBarを設定することは重要ではないと思ったため、これを行いませんでした)

もう1つは、アクティビティ内で機能していましたが、フラグメントでは正しく機能していませんでした(おそらく、私が使用した特定のバージョンのサポートライブラリの問題でした)。

5
Ultimo_m

これを引き起こしているのは、CollapsingToolbarLayoutの「exitUntilCollapsed」行です。app:layout_scrollFlags="scroll|exitUntilCollapsed">

「スクロール」と併用すると問題が発生します。 TextViewsを新しいコンテンツで更新するインスタント翻訳オプションがあるため、marginBottomも使用できませんでした。その場合、不思議なことにさらにスクロールすることになり、下部の空のスペースが非常に見栄えが悪くなります。

代わりに「enterAlwaysCollapsed」を使用して解決し、ツールバーを折りたたみの外側の最上部に移動しました。それは私が望んでいるものではありませんが、これまでのところ解決策を見つけることができませんでした。

3
degemenc

ツールバーが固定されているため(CollapsingToolbarを使用)。 Nestedscrollviewは、画面で底面ビューを調整できませんでした。

SetSupportActionBarでツールバーを設定した場合。 NestedScrollViewは画面に収まります。

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

質問してからしばらく経ちました。しかし、おそらく この回答 のようにCollapsingToolbarLayoutでminHeight属性を設定すると誰かが役立つかもしれません。

2
AlexKost

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