/ ActionBar

One Behavior help AppBarLayout to scroll spring and with fling fix app bar

One Behavior help AppBarLayout to scroll spring and with fling fix app bar

appbarlayout-spring-behavior

One library contains one behavior help appbarlayout to scroll spring. In the sample have add the realtimeblur test and add tablayout with TabScrimHelper(animate color with CollapsingToolbarLayout).Because of some methods in the Behavior of AppBarLayout not open to the out package. So I set the package name same to the support design.

Screenshot

First is with spring. Second with blur and TabScrimHelper.

H H
appbarlayout-spring-behavior appbar_spring_blur_tab

Installation

dependencies {
    compile 'com.github.todou:appbarspring:1.0.6'
}

Usages

AppBarLayout-Spring

<android.support.design.widget.AppBarLayout
        ...
        app:layout_behavior="@string/appbar_spring_behavior"
        ...>
        ...
</android.support.design.widget.AppBarLayout>

if you want add blur with the spring.You can add this by the RealtimeBlurView:

final RealtimeBlurView realtimeBlurView = (RealtimeBlurView) findViewById(R.id.real_time_blur_view);
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar);
AppBarLayoutSpringBehavior springBehavior = (AppBarLayoutSpringBehavior) ((CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams()).getBehavior();
springBehavior.setSpringOffsetCallback(new AppBarLayoutSpringBehavior.SpringOffsetCallback() {
      @Override
      public void springCallback(int offset) {
           int radius = 20 * (240 - offset > 0 ? 240 - offset : 0) / 240;
           realtimeBlurView.setBlurRadius(radius);
      }
});

With the tablayout you can add TabScrimHelper to let TabLayout animate color with the CollapsingToolbarLayout:

TabScrimHelper tabScrimHelper = new TabScrimHelper(tabLayout, collapsingToolbarLayout);
appBarLayout.addOnOffsetChangedListener(tabScrimHelper);

GitHub