如何在viewpager中获取当前显示的片段

时间:2017-08-01 18:58:44

标签: android android-fragments android-viewpager

我是viewPagers的新手。这是我的问题。我在活动中有一个包含3个片段的viewPager。我有一个下一步按钮,根据不同的片段触发不同的操作。目前我正在应用以下方法:

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
        }
    }
});

当我处于0位置时,如果我点击下一个按钮,则viewPager会滑动到第二个片段,会触发这两个条件!它不应该只是第一个吗?如何针对相应的片段位置一次触发一个动作?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

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
         }
       }
    }); 

答案 1 :(得分:0)

在侦听器回调方法中执行操作

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) {

    }
});

如果有帮助,请告诉我。