如何区分onPageSelected中的2个viewPager



我的问题很简单,但我不知道如何解决……我没有找到任何对这个问题的回应。

我有2个viewPager,当选择一个页面时,我想知道它来自onPageSelected()中的哪个viewPager

这是我的代码:

public class MainActivity {
private ViewPager mCardsPager;
private ViewPager mIpsPager;
private MyCreditCardsPagerAdapter mCardsAdapter;
private MyInstantPaiementPagerAdapter mIpsAdapter;
private List<PayMethod> mCards;
private List<PayMethod> mIps;
//fill Pager/Adapter/List
@Override
public void onPageSelected(int position) {
if () {//If the page comes from mCardsPager
//do Something with mCards
} else { //else the page comes from mIpsPager
//do Something with mIps
}
}
}

您可以为每个ViewPager设置不同的侦听器,而不是在Activity类上实现。像这个

mCardsPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
}
@Override
public void onPageScrollStateChanged(int i) {
}
});

mIpsPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
}
@Override
public void onPageScrollStateChanged(int i) {
}
});

为多个ViewPager设置相同的OnPageChangeListener将不起作用。您需要创建一个实现OnPageChangeListener的类。在这个类中添加一个构造函数,该构造函数将ViewPager作为输入参数,并将值保存在数据成员中。最后,使用此类添加OnPageChangeListener

最新更新