From ccadee266b63eec002af398af7c669434fba8a39 Mon Sep 17 00:00:00 2001 From: Darron Lumley Date: Thu, 17 Dec 2015 20:02:29 +1100 Subject: [PATCH] FAB now hides on scroll --- Habitica/res/layout/activity_main.xml | 2 +- .../ui/helpers/FloatingActionMenuBehavior.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Habitica/res/layout/activity_main.xml b/Habitica/res/layout/activity_main.xml index 921cc77e5..ba0ee4a18 100644 --- a/Habitica/res/layout/activity_main.xml +++ b/Habitica/res/layout/activity_main.xml @@ -85,7 +85,7 @@ android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="16dp" - android:layout_marginRight="8dp" /> + android:layout_marginRight="8dp"/> \ No newline at end of file diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/helpers/FloatingActionMenuBehavior.java b/Habitica/src/com/habitrpg/android/habitica/ui/helpers/FloatingActionMenuBehavior.java index 622f6b069..f21bfe898 100644 --- a/Habitica/src/com/habitrpg/android/habitica/ui/helpers/FloatingActionMenuBehavior.java +++ b/Habitica/src/com/habitrpg/android/habitica/ui/helpers/FloatingActionMenuBehavior.java @@ -8,6 +8,7 @@ import android.support.design.widget.Snackbar; import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewPropertyAnimatorListener; import android.util.AttributeSet; +import android.util.Log; import android.view.View; import com.github.clans.fab.FloatingActionMenu; @@ -67,4 +68,21 @@ public class FloatingActionMenuBehavior extends CoordinatorLayout.Behavior { return minOffset; } + + @Override + public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, View child, View directTargetChild, View target, int nestedScrollAxes) { + return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL || + super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes); + } + + @Override + public void onNestedScroll(CoordinatorLayout coordinatorLayout, View child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { + super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed); + + if (dyConsumed > 20 && child.getVisibility() == View.VISIBLE) { + child.setVisibility(View.INVISIBLE); + } else if (dyConsumed < -20 && child.getVisibility() != View.VISIBLE) { + child.setVisibility(View.VISIBLE); + } + } } \ No newline at end of file