代码之家  ›  专栏  ›  技术社区  ›  Itoun

如何在onPageSelected中区分2个viewPager

  •  1
  • Itoun  · 技术社区  · 7 年前

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

    我有两个 viewPager 当一个页面被选中时我想知道 可视寻呼机 它来自于 onPageSelected() .

    这是我的代码:

    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
            }
        }
    
    }
    
    2 回复  |  直到 7 年前
        1
  •  3
  •   Milind Mevada Amir Hossein Mirzaei    7 年前

    您可以为每个设置不同的侦听器 ViewPager 而不是在活动类上实现。 这样地

    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) {
    
                    }
                });
    
        2
  •  2
  •   Milind Mevada Amir Hossein Mirzaei    7 年前

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