LoginSignup
5
5

More than 5 years have passed since last update.

AppBarLayoutでenterAlwaysCollapsedのときの下flingのWorkaround

Last updated at Posted at 2017-02-20

概要

enterAlwaysCollapsedに設定されたAppBarLayoutとRecyclerViewで下方向にflingすると、
RecyclerViewの端でスクロールが止まってしまうときのWorkaroundです。

ソースコードはこちら https://github.com/cattaka/AndroidSnippets/pull/38


このWorkaroundはSupport Library 24.2.1にて動作確認しています。
将来Support Library側で修正される可能性があります。

動画

Before

ezgif-1-cd673f6ed2.gif

After

ezgif-1-9c39feaa5f.gif

解説

RecyclerViewを下方向にflingしたとき、RecyclerViewがスクロールを始めます。
そしてRecyclerViewの端、つまり先頭までスクロールしたとき、スクロールは止まります。
現状のCoordinatorLayoutはこのときのイベントをハンドリングしていないため、そこで終わりになります。

このWorkaroundでは、RecyclerView.OnScrollListenerを利用して最後のスクロールイベントの速度を計測し、スクロールが終わったタイミングでAppBarLayoutにflingイベントを投げ直すことで対応しています。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5