@H_301_1@我正在编写使用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*/);
}
}
}