没有从 viewpager 获得正确的位置

Not getting the correct position from viewpager

我正在使用 viewpager 从服务器加载图像,每个片段应根据片段在适配器中的位置加载图像。因此,例如位置 0 将加载图像 0 位置 1 加载图像 1 等。在过去的两天里,我一直在努力获得正确的片段位置,总共我有 3 个片段,但是从打印输出中我已经添加到我可以看到的代码中只有位置 0 和 2,因此图像在位置 1 复制。

主要问题是我该如何解决这个问题?我想获得正确的位置并基于正确的图像。下面是 viewpager 代码和适配器代码,根据几种解决方案对其进行了多次修改,但是 none 其中似乎有效

public class LoadCarFullSizeImage extends AppCompatActivity{

private ViewPager viewPager;
protected String imagePath;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.car_images);

    imagePath=getIntent().getStringExtra("imagePath");

    viewPager=(ViewPager)findViewById(R.id.vp_carViewPager);

    CirclePageIndicator titleIndicator = (CirclePageIndicator)findViewById(R.id.titles);


    PagerAdapter  mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager(),imagePath);
    viewPager.setAdapter(mPagerAdapter);

    titleIndicator.setViewPager(viewPager);


}




@Override
public void onBackPressed() {
    if (viewPager.getCurrentItem() == 0) {
        // If the user is currently looking at the first step, allow the system to handle the
        // Back button. This calls finish() on this activity and pops the back stack.
        super.onBackPressed();
    } else {
        // Otherwise, select the previous step.
        viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
    }
}



private static class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter{

    private String imgPath;

    public ScreenSlidePagerAdapter(android.support.v4.app.FragmentManager fm, String _imagePath) {
        super(fm);
        this.imgPath=_imagePath;
    }


    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0: // Fragment # 0 - This will show FirstFragment
                return CarImageFragment.newInstance(0, imgPath);
            case 1: // Fragment # 0 - This will show FirstFragment different title
                return CarImageFragment.newInstance(1, imgPath);
            case 2: // Fragment # 1 - This will show SecondFragment
                return CarImageFragment.newInstance(2, imgPath);
            default:
                return null;
        }

    }


    @Override
    public int getCount() {
        return 3;
    }
}

}

由于您正在使用指标..您必须从中获取当前页面...并使用它设置当前页面... 当使用指示器停止使用寻呼机或寻呼机侦听器时...任何侦听器都应设置为指示器。

titleIndicator.getCurrentItem()==0...

titleIndicator.setCurrent.....