diff --git a/paper-onboarding/src/main/java/com/ramotion/paperonboarding/PaperOnboardingEngine.java b/paper-onboarding/src/main/java/com/ramotion/paperonboarding/PaperOnboardingEngine.java index b0d1c7c..d3e8709 100644 --- a/paper-onboarding/src/main/java/com/ramotion/paperonboarding/PaperOnboardingEngine.java +++ b/paper-onboarding/src/main/java/com/ramotion/paperonboarding/PaperOnboardingEngine.java @@ -8,6 +8,7 @@ import android.os.Build; import android.view.Gravity; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewAnimationUtils; import android.view.ViewGroup; @@ -15,6 +16,7 @@ import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; import android.widget.FrameLayout; +import android.widget.HorizontalScrollView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; @@ -46,6 +48,7 @@ public class PaperOnboardingEngine implements PaperOnboardingEngineDefaults { private final RelativeLayout mContentRootLayout; private final LinearLayout mContentCenteredContainer; + private final HorizontalScrollView mPagerLayoutContainer; // application context private final Context mAppContext; @@ -88,6 +91,26 @@ public PaperOnboardingEngine(View rootLayout, ArrayList con mContentRootLayout = (RelativeLayout) mRootLayout.getChildAt(1); mContentCenteredContainer = (LinearLayout) mContentRootLayout.getChildAt(0); + /* Disable scrolling on scroll view but enable swipe */ + mPagerLayoutContainer = rootLayout.findViewById(R.id.onboardingPagerLayoutContainer); + mPagerLayoutContainer.setOnTouchListener(new OnSwipeListener(mAppContext) { + @Override + public boolean onTouch(View v, MotionEvent event) { + super.onTouch(v, event); + return true; + } + + @Override + public void onSwipeRight() { + toggleContent(true); + } + + @Override + public void onSwipeLeft() { + toggleContent(false); + } + }); + this.dpToPixelsScaleFactor = this.mAppContext.getResources().getDisplayMetrics().density; initializeStartingState(); @@ -144,7 +167,7 @@ protected int calculateNewPagerPosition(int newActiveElement) { int pagerActiveElemCenterPosX = mPagerElementActiveSize / 2 + newActiveElement * mPagerElementLeftMargin + (newActiveElement - 1) * (mPagerElementNormalSize + mPagerElementRightMargin); - return mRootLayout.getWidth() / 2 - pagerActiveElemCenterPosX; + return mPagerLayoutContainer.getWidth() / 2 - pagerActiveElemCenterPosX; } /** diff --git a/paper-onboarding/src/main/res/layout/onboarding_main_layout.xml b/paper-onboarding/src/main/res/layout/onboarding_main_layout.xml index 0368244..57a99a2 100644 --- a/paper-onboarding/src/main/res/layout/onboarding_main_layout.xml +++ b/paper-onboarding/src/main/res/layout/onboarding_main_layout.xml @@ -52,16 +52,27 @@ - + android:scrollbars="none" + android:layout_marginEnd="54dp" + android:layout_marginRight="54dp" + android:layout_marginStart="54dp" + android:layout_marginLeft="54dp"> + + +