スクロールするToolbarを実装する1
レイアウトを作成
RecyclerViewを使った簡単な構造を記載する
Toolbarをスクロールするのに必要な最低限の属性しか記述していないため、このままではエラーになるので注意
まずは、レイアウト全体をCoordinatorLayoutで包み、その中にAppBarLayoutとRecyclerViewを配置する
ToolbarをAppBarLayout内に配置し、layout_scrollFlags属性にscrollフラグをセットする
これにより、RecyclerViewのスクロールにより、ToolBarもスクロールするようになる。
しかし、このままだと、リストを一番上までスクロールしないとToolBarが表示されないため、
リストを下にスクロールした時にToolBarが表示されるようにenterAlwaysフラグを一緒にセットする
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout> <android.support.v7.widget.Toolbar app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView app:layout_behavior="@string/appbar_scrolling_view_behavior"> </android.support.design.widget.CoordinatorLayout>
実装をほぼ変更せずにレイアウトのみでToolBarのスクロールを実装することができる。
問題点
実に簡単に実装できるが少々難点もある
- RecyclerView内のアイテムがスクロールするのに必要な数がなくても、ToolBarがスクロールする
- 今回は単純なレイアウトだったが、RcyclerVIewの代わりにFragmentを使用していると、レイアウト構成の変更が必要な場合がある
問題点については次回以降確認する
参考サイト
http://android-developers.blogspot.jp/2015/05/android-design-support-library.html