我正在编写使用ViewPager托管Fragments的应用程序.
当我以编程方式更改片段时,平滑滚动功能不起作用.我使用ViewPager.setCurrentItem(int item,boolean smoothScroll)`方法.
也许有人知道这个bug的解决方法吗?也许动画?
编辑:
我正在使用支持包.而且问题是我是否使用ViewPager.setCurrentItem(2,true)或者ViewPager.setCurrentItem(2,false)结果是一样的.视图切换真的很快(不顺利).
解决方法
我已经通过创建一个MyViewPager来修复这个问题,该视图用反射来覆盖ViewPager.mScroller.
public class MyViewPager extends ViewPager { public MyViewPager( Context context,AttributeSet attrs) { super( context,attrs ); setMyScroller(); } private void setMyScroller() { try { Class<?> viewpager = ViewPager.class; Field scroller = viewpager.getDeclaredField("mScroller"); scroller.setAccessible(true); scroller.set(this,new MyScroller(getContext())); } catch (Exception e) { e.printStackTrace(); } } public class MyScroller extends Scroller { public MyScroller(Context context) { super(context,new DecelerateInterpolator()); } @Override public void startScroll(int startX,int startY,int dx,int dy,int duration) { super.startScroll(startX,startY,dx,dy,1000 /*1 secs*/); } } }