Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Created by tilemachos on 7/12/15.
- */
- public class ScrollingFABBehavior extends FloatingActionButton.Behavior {
- private final int toolbarHeight;
- public ScrollingFABBehavior(Context context, AttributeSet attrs) {
- super();
- this.toolbarHeight = Utils.getToolbarHeight(context);
- }
- @Override
- public boolean layoutDependsOn(CoordinatorLayout parent, FloatingActionButton fab, View dependency) {
- return super.layoutDependsOn(parent, fab, dependency) || (dependency instanceof AppBarLayout) ;
- }
- @Override
- public boolean onDependentViewChanged(CoordinatorLayout parent, FloatingActionButton fab, View dependency) {
- if (dependency instanceof AppBarLayout) {
- try{
- CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
- int fabBottomMargin = lp.bottomMargin;
- int distanceToScroll = fab.getHeight() + fabBottomMargin;
- float ratio = dependency.getY()/(float)toolbarHeight;
- fab.setTranslationY(-distanceToScroll * ratio);
- } catch (ArithmeticException ignored){
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement