Reputation: 5605
I know there was some similiar problems on StackOverflow but none of these solutions worked for me. I want to use method onPageScrolled, I have set up listner, adapter etc. but it still doesn't react. Here is my code : I implement this method via :
public class ChefViewActivity extends RoboFragmentActivity implements ViewPager.OnPageChangeListener {
Then :
....
pagerIndicator = new PagerIndicator((LinearLayout) findViewById(R.id.pagerIndicator),
fragments.size());
fragmentAdapter = new DetailsFragmentAdapter(getSupportFragmentManager(), fragments,
pagerIndicator);
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(fragmentAdapter);
viewPager.setOnPageChangeListener(pagerIndicator);
viewPager.setOffscreenPageLimit(5);
pagerIndicator.onPageSelected(viewPager.getCurrentItem());
.....
Upvotes: 0
Views: 595
Reputation: 1154
private class GestureListener extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
return false; // Right to left
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
return false; // Left to right
}
if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
return false; // Bottom to top
} else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY) {
return false; // Top to bottom
}
return false;
}
}
Upvotes: 0
Reputation: 2158
the following code works for me.
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
Upvotes: 2