aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurelien Hubert <aurel.hubert@gmail.com>2016-05-25 11:58:02 +0200
committerAurelien Hubert <aurel.hubert@gmail.com>2016-05-25 11:58:02 +0200
commit0d5d9cc4f0f5caff3a198a881c89090e47ad44f6 (patch)
treea719b22e8818f683a71bbf7ae9ac651e8fb815a2
parent8faa6262fd592fb317c91dbc1046323c5d5bb6f6 (diff)
downloadandroid_external_ahbottomnavigation-0d5d9cc4f0f5caff3a198a881c89090e47ad44f6.tar.gz
android_external_ahbottomnavigation-0d5d9cc4f0f5caff3a198a881c89090e47ad44f6.tar.bz2
android_external_ahbottomnavigation-0d5d9cc4f0f5caff3a198a881c89090e47ad44f6.zip
Fixed behavior when ScrollView is not long enough
-rw-r--r--ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigationBehavior.java31
1 files changed, 23 insertions, 8 deletions
diff --git a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigationBehavior.java b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigationBehavior.java
index 5e5b900..bebdee7 100644
--- a/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigationBehavior.java
+++ b/ahbottomnavigation/src/main/java/com/aurelhubert/ahbottomnavigation/AHBottomNavigationBehavior.java
@@ -38,6 +38,9 @@ public class AHBottomNavigationBehavior<V extends View> extends VerticalScrollin
private float targetOffset = 0, fabTargetOffset = 0, fabDefaultBottomMargin = 0, snackBarY = 0;
private boolean behaviorTranslationEnabled = true;
+ /**
+ * Constructor
+ */
public AHBottomNavigationBehavior() {
super();
}
@@ -91,7 +94,26 @@ public class AHBottomNavigationBehavior<V extends View> extends VerticalScrollin
@Override
public void onDirectionNestedPreScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy, int[] consumed, @ScrollDirection int scrollDirection) {
- handleDirection(child, scrollDirection);
+ }
+
+ @Override
+ protected boolean onNestedDirectionFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY, @ScrollDirection int scrollDirection) {
+ return false;
+ }
+
+ @Override
+ public void onNestedScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
+ super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
+ if (dyConsumed < 0) {
+ handleDirection(child, ScrollDirection.SCROLL_DIRECTION_DOWN);
+ } else if (dyConsumed > 0) {
+ handleDirection(child, ScrollDirection.SCROLL_DIRECTION_UP);
+ }
+ }
+
+ @Override
+ public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, V child, View directTargetChild, View target, int nestedScrollAxes) {
+ return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL || super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);
}
/**
@@ -112,12 +134,6 @@ public class AHBottomNavigationBehavior<V extends View> extends VerticalScrollin
}
}
- @Override
- protected boolean onNestedDirectionFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY, @ScrollDirection int scrollDirection) {
- handleDirection(child, scrollDirection);
- return true;
- }
-
/**
* Animate offset
*
@@ -128,7 +144,6 @@ public class AHBottomNavigationBehavior<V extends View> extends VerticalScrollin
if (!behaviorTranslationEnabled && !forceAnimation) {
return;
}
-
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
ensureOrCancelObjectAnimation(child, offset, withAnimation);
translationObjectAnimator.start();