【问题标题】:How to make the android.widget.Scroller stop scrolling at a specific item index?如何使 android.widget.Scroller 在特定项目索引处停止滚动?
【发布时间】:2019-02-26 16:33:08
【问题描述】:

我正在试验这个项目: 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 中旋转一秒钟,然后减速到预定位置?

【问题讨论】:

    标签: android


    【解决方案1】:

    public void setCurrentItem(int index, boolean animated) WheelView 的方法将平滑滚动到给定的项目,然后如果您通过 true 获得动画值则停止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 2014-07-14
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多