Reputation: 231
I'm new with viewPagers. Here is my problem. I've got a viewPager
containing 3 fragments, inside an activity. I've a Next button which triggers different actions according to different fragments. Currently I'm applying following method:
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if(viewPager.getCurrentItem() == 0){
mViewPager.setCurrentItem(getItem(+1), true);
}else if(viewPager.getCurrentItem() == 1){
// trigger something
}
}
});
When I am in position 0, if I click next button, viewPager swipes to second fragment and both conditions are triggered! Isn't it supposed to be the first one only ? How to trigger one action at a time for corresponding fragment position? Any help will be greatly appreciated.
Upvotes: 0
Views: 474
Reputation: 173
Perform operation in listener call back methods
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//Do it here
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
Please let me know if it helps.
Upvotes: 0
Reputation: 2013
You can try something like this:
btnNext.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if(viewPager.getCurrentItem() == 0){
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1,true);
}
else if(viewPager.getCurrentItem() == 1){
// trigger something
}
}
});
Upvotes: 1