有时候我们想要在展示viewPager的同时就让它滑动到指定的页面,我们可以用viewPager.setCurrentItem(index)
。
然而这种做法依然会加载position为0的页面再跳转到指定的页面。
今天发现可以通过反射来改变viewPager的初始化index,亲测6.0有效。
代码如下:
//初始化adapter,FileLookUpAdapter继承自FragmentStatePagerAdapter
adapter = new FileLookUpAdapter(getSupportFragmentManager());
Field field = null;
try {
field = ViewPager.class.getDeclaredField("mRestoredCurItem");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
field.setAccessible(true);
try {
//index 为我们想要的第一次就展示的页面index
field.set(viewPager, index);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
//setAdapter
viewPager.setAdapter(adapter);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。