From f2cc8acf208ecd3d7ddd8cd2652a7860501fe7a7 Mon Sep 17 00:00:00 2001 From: Duong Van Toi Date: Tue, 28 Jun 2016 16:59:10 +0700 Subject: [PATCH] Added the order mode (BOTTOM by default, and TOP by specify app:stack_order_top="true") --- build.gradle | 2 +- .../main/java/link/fls/swipestack/SwipeStack.java | 7 ++++++- library/src/main/res/values/attrs.xml | 1 + sample/src/main/res/layout/activity_main.xml | 12 ++++++------ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 23b974a..d181b22 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-beta5' + classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.novoda:bintray-release:0.3.4' } } diff --git a/library/src/main/java/link/fls/swipestack/SwipeStack.java b/library/src/main/java/link/fls/swipestack/SwipeStack.java index 175e28d..6c50181 100644 --- a/library/src/main/java/link/fls/swipestack/SwipeStack.java +++ b/library/src/main/java/link/fls/swipestack/SwipeStack.java @@ -44,6 +44,7 @@ public class SwipeStack extends ViewGroup { public static final float DEFAULT_SWIPE_OPACITY = 1f; public static final float DEFAULT_SCALE_FACTOR = 1f; public static final boolean DEFAULT_DISABLE_HW_ACCELERATION = true; + public static final boolean DEFAULT_STACK_ORDER_TOP = false; private static final String KEY_SUPER_STATE = "superState"; private static final String KEY_CURRENT_INDEX = "currentIndex"; @@ -61,6 +62,7 @@ public class SwipeStack extends ViewGroup { private float mSwipeOpacity; private float mScaleFactor; private boolean mDisableHwAcceleration; + private boolean mStackOrderTop; private boolean mIsFirstLayout = true; private View mTopView; @@ -109,6 +111,9 @@ private void readAttributes(AttributeSet attributeSet) { mDisableHwAcceleration = attrs.getBoolean(R.styleable.SwipeStack_disable_hw_acceleration, DEFAULT_DISABLE_HW_ACCELERATION); + mStackOrderTop = + attrs.getBoolean(R.styleable.SwipeStack_stack_order_top, + DEFAULT_STACK_ORDER_TOP); } finally { attrs.recycle(); } @@ -222,7 +227,7 @@ private void reorderItems() { int distanceToViewAbove = (topViewIndex * mViewSpacing) - (x * mViewSpacing); int newPositionX = (getWidth() - childView.getMeasuredWidth()) / 2; - int newPositionY = distanceToViewAbove + getPaddingTop(); + int newPositionY = mStackOrderTop ? -distanceToViewAbove + getPaddingTop() : distanceToViewAbove + getPaddingTop(); childView.layout( newPositionX, diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml index 0ec3fcd..c5e59a8 100644 --- a/library/src/main/res/values/attrs.xml +++ b/library/src/main/res/values/attrs.xml @@ -14,5 +14,6 @@ + \ No newline at end of file diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index aa537be..3b75d38 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -1,6 +1,5 @@ - + android:text="@string/swipe_left" />