微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/android/310636.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐