不敢相信我还没有找到关于此的已回答堆栈溢出帖子...

我正在制作一个计时器,您可以在其中从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);

最佳答案

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

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

10-08 03:04