android – 平滑滚动在ViewPager(支持库)中不起作用

前端之家收集整理的这篇文章主要介绍了android – 平滑滚动在ViewPager(支持库)中不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写使用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*/);
    }
  }
}
原文链接:https://www.f2er.com/android/310636.html

猜你在找的Android相关文章