使 ViewPager 在数据更改时忘记当前项目位置

Make ViewPager forget current item position upon data change

我有一个 FragmentStatePagerAdapter 可以容纳三个 FragmentFragments 是 A(位置 0)、B 和 C(位置 2)。 Fragment B 当前可见。

根据用户交互,我会调用notifyDataSetChanged(),现在有五个Fragments。它们是D(位置0)、E、F、G和H(位置4)。

当前行为是在数据更改后默认显示 Fragment E。 (ViewPager 保持在其先前的位置。)但是,我希望 ViewPager 每次 FragmentStatePagerAdapter 获取一些新数据时显示 position-0 项目。

我在 ViewPager 上试过 setCurrentItem(0)。但是 Fragment E 仍然在 ViewPager 滚动到 Fragment D 之前显示。

有什么解决办法吗?

您应该改用 setCurrentItem(0, false)

编辑:

public void setCurrentItem (int item, boolean smoothScroll)

false 禁用 smoothScroll

http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setCurrentItem%28int,%20boolean%29