Skip to content

Commit 1b869c1

Browse files
committed
+ added SimplePagerFragment
+ added onSkipButtonClicked method
1 parent 92b03f0 commit 1b869c1

File tree

5 files changed

+51
-26
lines changed

5 files changed

+51
-26
lines changed

lib/src/main/java/com/cleveroad/slidingtutorial/PresentationPagerFragment.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
8686
@Override
8787
public void onClick(View v) {
8888
if (v.getId() == getButtonSkipResId()) {
89-
removeFragmentFromScreen();
89+
if (!onSkipButtonClicked()) {
90+
removeFragmentFromScreen();
91+
}
9092
}
9193
}
9294

@@ -187,6 +189,14 @@ protected boolean isInfiniteScrollEnabled() {
187189
@ColorInt
188190
protected abstract int getPageColor(int position);
189191

192+
/**
193+
* Called when user pressed Skip button. Default behavior: remove presentation fragment.
194+
* @return true if you consumed click listener and implemented your own behavior, false otherwise
195+
*/
196+
protected boolean onSkipButtonClicked() {
197+
return false;
198+
}
199+
190200
/**
191201
* Implementation of {@link FragmentPagerAdapter} that in addition add empty last fragment.
192202
*/
@@ -225,7 +235,7 @@ public int getCount() {
225235
* Implementation of {@link android.support.v4.view.ViewPager.PageTransformer} that dispatch
226236
* transform page event whenever a visible/attached page is scrolled.
227237
*/
228-
class FragmentTransformer implements ViewPager.PageTransformer {
238+
private class FragmentTransformer implements ViewPager.PageTransformer {
229239

230240
public void transformPage(View view, float position) {
231241
Object obj = view.getTag(R.id.page_fragment);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.cleveroad.slidingtutorial;
2+
3+
/**
4+
* Simple implementation of {@link PresentationPagerFragment}
5+
*/
6+
public abstract class SimplePagerFragment extends PresentationPagerFragment {
7+
8+
@Override
9+
public int getLayoutResId() {
10+
return R.layout.fragment_presentation;
11+
}
12+
13+
@Override
14+
public int getViewPagerResId() {
15+
return R.id.viewPager;
16+
}
17+
18+
@Override
19+
public int getIndicatorResId() {
20+
return R.id.indicator;
21+
}
22+
23+
@Override
24+
public int getButtonSkipResId() {
25+
return R.id.tvSkip;
26+
}
27+
}

sample/src/main/res/layout/fragment_presentation.xml renamed to lib/src/main/res/layout/fragment_presentation.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@
3131
android:layout_marginRight="10dp"
3232
android:fontFamily="sans-serif-light"
3333
android:padding="10dp"
34-
android:text="Skip"
34+
android:text="@string/skip"
3535
android:textColor="@android:color/white"
3636
android:textSize="21sp"
37-
tools:ignore="HardcodedText,UnusedAttribute"/>
37+
tools:ignore="UnusedAttribute"/>
3838

3939
<com.cleveroad.slidingtutorial.CirclePageIndicator
4040
android:id="@+id/indicator"

lib/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
<resources>
22
<string name="app_name">SlidingTutorialLibrary</string>
3+
<string name="skip">Skip</string>
34
</resources>

sample/src/main/java/com/cleveroad/slidingtutorial/sample/CustomPresentationPagerFragment.java

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,12 @@
33
import android.graphics.Color;
44
import android.support.annotation.ColorInt;
55
import android.support.v4.content.ContextCompat;
6+
import android.widget.Toast;
67

78
import com.cleveroad.slidingtutorial.PageFragment;
8-
import com.cleveroad.slidingtutorial.PresentationPagerFragment;
9+
import com.cleveroad.slidingtutorial.SimplePagerFragment;
910

10-
public class CustomPresentationPagerFragment extends PresentationPagerFragment {
11-
12-
@Override
13-
public int getLayoutResId() {
14-
return R.layout.fragment_presentation;
15-
}
16-
17-
@Override
18-
public int getViewPagerResId() {
19-
return R.id.viewPager;
20-
}
21-
22-
@Override
23-
public int getIndicatorResId() {
24-
return R.id.indicator;
25-
}
26-
27-
@Override
28-
public int getButtonSkipResId() {
29-
return R.id.tvSkip;
30-
}
11+
public class CustomPresentationPagerFragment extends SimplePagerFragment {
3112

3213
@Override
3314
protected int getPagesCount() {
@@ -61,4 +42,10 @@ protected int getPageColor(int position) {
6142
protected boolean isInfiniteScrollEnabled() {
6243
return true;
6344
}
45+
46+
@Override
47+
protected boolean onSkipButtonClicked() {
48+
Toast.makeText(getContext(), "Skip button clicked", Toast.LENGTH_SHORT).show();
49+
return true;
50+
}
6451
}

0 commit comments

Comments
 (0)