如何使android.widget.Scroller在特定项目索引处停止滚动?

时间:2019-02-26 16:33:08

标签: android

我正在尝试这个项目: https://github.com/maarek/android-wheel/blob/master/wheel-demo/src/kankan/wheel/demo/extended/PasswActivity.java

我一直在尝试实现以下目标:

1)将轮子设置在5号(或其他任何数字)上

2)滚动滚轮约2秒钟

3)旋转停止后(可以是0到9之间的任意旋转),显示的值是在步骤1中设置的值。

到目前为止我的工作:

在WheelView-> WheelScroller中,我添加了以下方法(并且还添加了对父视图的引用):

public void flingToY(int initialVelocity, final int finalYindex) {
    scroller.forceFinished(true);

    lastScrollY = 0;
    final int maxY = 0x7FFFFFFF;
    final int minY = -maxY;
    scroller.fling(0, lastScrollY, 0, initialVelocity, 0, 0, minY, maxY);

    setNextMessage(MESSAGE_SCROLL);// specific to the view to allow it to scroll

    parentView.postDelayed(new Runnable() {
        @Override
        public void run() {
            //scroller.extendDuration(1000);
            scroller.setFinalY(finalYindex);
        }
    }, 1000);
}

最终结果:

在致电setFinalY()之后,轮子停止转动,并且显示的数字始终为“ 0”

您可以看到我尝试了extendDuration(),它确实扩展了旋转,但是最终结果是相同的;纺车突然停止,并且车轮上显示数字“ 0”。

需要帮助:

如何获取“ WheelView”以旋转数字0 .. 9秒钟,然后减速到预定位置?

1 个答案:

答案 0 :(得分:1)

如果您通过public void setCurrentItem(int index, boolean animated)获得动画值,WheelView的

true方法将平滑滚动到给定的项目,然后停止。