スクロールする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