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>
編集:カットコンテンツの高さがツールバーの高さと同じであることに気づきました。
ここ からの回答。 NestedScrollViewにpaddingBottomを追加すると、この問題が解決しました。
Android:paddingBottom="<toolbar height in collapsed state>"
また、キーボードが開いているときにNestedScrollViewが最後までスクロールしないという同様の問題に直面していました。
NestedScrollViewの後にAppBarLayoutを配置すると、うまくいきました。それがあなたのために働くかどうか私に知らせてください。
私も同じ問題を抱えていました。このバグの理由の1つは、SupportActionBarを設定しなかったことです。
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
(折りたたみツールバーが期待どおりに機能するためだけにツールバーが必要であり、setSupportActionBarを設定することは重要ではないと思ったため、これを行いませんでした)
もう1つは、アクティビティ内で機能していましたが、フラグメントでは正しく機能していませんでした(おそらく、私が使用した特定のバージョンのサポートライブラリの問題でした)。
これを引き起こしているのは、CollapsingToolbarLayoutの「exitUntilCollapsed」行です。app:layout_scrollFlags="scroll|exitUntilCollapsed">
「スクロール」と併用すると問題が発生します。 TextViewsを新しいコンテンツで更新するインスタント翻訳オプションがあるため、marginBottomも使用できませんでした。その場合、不思議なことにさらにスクロールすることになり、下部の空のスペースが非常に見栄えが悪くなります。
代わりに「enterAlwaysCollapsed」を使用して解決し、ツールバーを折りたたみの外側の最上部に移動しました。それは私が望んでいるものではありませんが、これまでのところ解決策を見つけることができませんでした。
ツールバーが固定されているため(CollapsingToolbarを使用)。 Nestedscrollviewは、画面で底面ビューを調整できませんでした。
SetSupportActionBarでツールバーを設定した場合。 NestedScrollViewは画面に収まります。
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
質問してからしばらく経ちました。しかし、おそらく この回答 のようにCollapsingToolbarLayoutでminHeight
属性を設定すると誰かが役立つかもしれません。
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>