为了账号安全,请及时绑定邮箱和手机立即绑定

更改 NumberPicker 滚动速度

更改 NumberPicker 滚动速度

素胚勾勒不出你 2021-05-31 13:42:27
不敢相信我还没有找到有关此问题的已回答的 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 workmSecondsPicker.setOnLongPressUpdateInterval(8000);//This method looks promising but my app crashes when I run it//mSecondsPicker.scrollBy(0, 20);
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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

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


查看完整回答
反对 回复 2021-06-02
?
慕沐林林

TA贡献2016条经验 获得超9个赞

我也无法为此找到解决方案,但我只是想澄清一下原因

mSecondsPicker.setOnLongPressUpdateInterval(8000);

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


查看完整回答
反对 回复 2021-06-02
  • 3 回答
  • 0 关注
  • 295 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信