【问题标题】:Changing NumberPicker scrolling speed更改 NumberPicker 滚动速度
【发布时间】:2018-07-18 13:19:02
【问题描述】:

不敢相信我还没有找到关于此问题的 Stack Overflow 帖子……

我正在制作一个计时器,您可以在其中从 NumberPicker 小部件中选择时间。问题是它需要 10-13 滚动才能到达底部

我查看了文档,但没有找到任何东西

String[] minsecvalues = new String[61];

for(int i=0; i < minsecvalues.length; i++){
        minsecvalues[i] = Integer.toString(i);
}

NumberPicker mSecondsPicker = (NumberPicker) v.findViewById(R.id.np_seconds_picker);
mSecondsPicker.setMaxValue(60);
mSecondsPicker.setMinValue(0);
mSecondsPicker.setWrapSelectorWheel(true);
mSecondsPicker.setDisplayedValues(minsecvalues);

//supposed to change scroll speed but doesn't work
mSecondsPicker.setOnLongPressUpdateInterval(8000);
//This method looks promising but my app crashes when I run it
//mSecondsPicker.scrollBy(0, 20);

【问题讨论】:

    标签: java android numberpicker


    【解决方案1】:

    我的 ScrollPicker 库在这里可能会有所帮助,但不幸的是它不能有“选择轮”“包裹”,因此无法循环显示列表。
    虽然您无法从代码中设置滚动速度,但您不必这样做,因为您可以在 1 次滑动中到达这 60 个项目的末尾。这就是为什么我认为它仍然可能适合你的原因。您可以通过滑动速度来控制滑动速度。

    您必须这样做:
    1. 使用 ScrollPicker 代替 NumberPicker
    2. 使用 setItems(..) 在代码中设置您的 Collection。不需要 setMinValue、setMaxValue 或转换为字符串,只需设置您的 int 集合即可。

    【讨论】:

      【解决方案2】:

      我也没有找到解决方案,但我只是想澄清一下原因

      mSecondsPicker.setOnLongPressUpdateInterval(8000);
      

      没有按照您期望的方式工作。此方法的description 是“设置分别长按向上和向下按钮时数字递增和递减的速度。”这意味着当您按住向上和向下按钮时,它只会影响滚动速度,而不是控制滑动速度。我相信默认 NumberPicker 的“向上和向下”按钮是 NumberPicker 中突出显示或选定的数字上方和下方的数字。

      【讨论】:

        【解决方案3】:

        在默认的NumberPicker 小部件中没有公开访问摩擦级别的方法。

        您可以使用此自定义NumberPickerView。 英文安装说明为here

        使用下面的方法来控制摩擦水平完全符合您的要求:

        //double the default scroll friction level
        mNumberPickerView.setFriction(2 * ViewConfiguration.get(mContext).getScrollFriction());
        

        默认滚动摩擦力值为0.015f,可查here

        【讨论】:

          猜你喜欢
          • 2011-01-02
          • 1970-01-01
          • 1970-01-01
          • 2016-03-14
          • 2019-08-14
          • 2021-05-20
          • 1970-01-01
          • 2013-01-03
          • 2013-06-18
          相关资源
          最近更新 更多