閉じる

android.support.design.widget.AppBarLayout

Support Library 22.2になって導入された Design Support libraryに含まれる AppBarLayout他を試してみた。
Goolge Play等に見られる、コンテンツのスクロールに伴ってアクションバー(ツールバー)やタブが一緒にスクロールして消え、逆にスクロールするとコンテンツのスクロールより優先してアクションバーやタブスクロールして表示されるという奴が簡単に実装できる。*1
タブレットや 5インチを超えるような大型端末ではあまり感じないけど、自分のように 4インチ程度の端末を常用していると地味に便利。
試してみたら、拍子抜けするぐらいあっさり導入できたのでメモ。
基本的には AppBarLayoutを参考にしてレイアウトを組み*2 、NestedScrollViewの子供にスクロールさせるコンテンツを入れるだけ。
とりあえずテストとして ScrollViewとLinearLayoutで適当なビューを組んで見たけど期待通りに動いている。
サードパーティー製のライブラリを参照したときはコンテンツのビューによって小細工をする必要があるようだったけど、こいつは良きに計らってくれるっぽく。*3

週末にでも自作アプリに組み込んでみるか。
同じく Design Support libraryに含まれる android.support.design.widget.NavigationViewを使うとドロワーを出したときのメニュー周りを良きに計らってくれるのかな?

2015/05/30追記

ViewPagerに RecyclerViewを組み合わせて使うような場合でも CoordinatorLayout直下に layout_behaviorを設定した ViewPagerを配置するだけで良い感じに。
ただ、長いビューを ScrollViewでスクロールさせる形の場合は ScrollViewでなく NestedScrollViewを使う必要があった。


*1 そういうのを実現するサードパーティー製のライブラリも存在するので導入を考えた事もあったけど、導入自体が結構面倒&今後のサポートが不安というのがあって見送っていた機能。

*2 layout_width等サンプルにありがちなプロパティの欠落は適当に補完を

*3 NestedScrollingChildを実装した Viewという条件らしく、Support Library v22.2に含まれる RecyclerViewや NestedScrollViewが該当するらしい。

android.support.design.widget.AppBarLayout」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)