gpt4 book ai didi

android - ViewPager setCurrentItem(pageId, true) 不平滑滚动

转载 作者:IT王子 更新时间:2023-10-28 23:50:27 28 4
gpt4 key购买 nike

我在 SDK 4.03、Samsung Infuse Android 2.2、Android 4 支持库上编译,并在我的应用程序中使用 ViewPager,实际滑动工作正常,但是当我这样做时

viewPager.setCurrentItem(id); // , or
viewPager.setCurrentItem(id, true);

它不会平滑滚动,但会立即切换 View 。尽管文档明确指出,这是将第二个参数设置为 true 的目的。这是怎么回事?

最佳答案

我通过创建一个使用反射覆盖 ViewPager.mScroller 的 MyViewPager 解决了这个问题。

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*/);
}
}
}

关于android - ViewPager setCurrentItem(pageId, true) 不平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962268/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com