我正在使用FragmentPagerAdapter& amp; ViewPager。我面临的问题是每当我在每页滚动时更改图像名称时,只显示第二个图像错误的名称。在这种情况下,它显示第一图像的名称,并且从第三图像开始,位置再次从0增加到1&等等。我检查了onPageScrolled&中的位置。它在第一和第二时都显示0第二张图片。还有一件事我观察到只有在显示第二张图像时才会调用getItem方法。如果您有任何想法可以解决这个问题,请指导我。
答案 0 :(得分:1)
ViewPager实例化当前片段周围的片段以获得平滑的滑动。使用setOffScreenPageLimit(int)
设置应保留在当前页面任一侧的页数。默认值为1.
如果你想获得不同片段的实际位置,直接从FragmentPagerAdapter.getItem(int position)
获取它,在返回之前将位置设置为片段的参数。
public Fragment getItem(int position) {
YourFragment fragment = new YourFragment();
Bundle args = new Bundle();
args.putInt("page_position", position);
fragment.setArguments(args);
return fragment;
}
然后,您可以像这样在YourFragment中获得该职位:
int position = getArguments().getInt("page_position"));