カスタムな CoordinatorLayout.Behavior の実験として、CoordinatorLayout と RecyclerView でスティッキー*1なヘッダを作ってみる。
仕様
汎用的なライブラリを作るわけじゃないので、以下のようにやってみる。
- CoordinatorLayout 直下に RecyclerView を配置する。
- RecyclerView 内部の任意の範囲をヘッダ付きリストとして扱い、その範囲外はヘッダ付きリストの外側として扱う。
- LinearLayoutManager を利用する。
- 縦スクロールのみ。
- コードリーディングに事前知識を必要としないよう利用ライブラリを最低限にとどめる。
StickyHeader の無い状態
ソースはこちら
StickyなHeaderを付与する機能の作成
描画するタイミングにて、Adapter 内部のヘッダ位置と、ヘッダ付きリストの終端位置さえわかれば sticky なヘッダは作れるはず。ということで StickyHeaderBehavior を作成。
まとめ
ざっくりと作ってみましたが、カスタムな CoordinatorLayout.Behavior の実験としてはこんなもんでしょうか。