真不敢相信我还没有找到一个关于这个的应答堆栈溢出帖子...
我正在制作一个计时器,您可以从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);发布于 2018-08-28 02:31:32
我的ScrollPicker库在这里可能会有帮助,但不幸的是它不能有‘选择器滚轮’‘包装’,所以列表没有循环显示。
虽然你不能从代码中设置滚动速度,但你不必这样做,因为你可以在一次滑动中到达这60个项目的末尾。这就是为什么我认为它仍然适合你的原因。你可以通过你滑动的速度来控制你的滑动速度。
下面是你要做的:
发布于 2018-08-29 02:19:49
我也找不到解决这个问题的办法,但我只是想澄清一下为什么
mSecondsPicker.setOnLongPressUpdateInterval(8000);并不像你所期望的那样工作。此方法的description是“设置当分别长按向上和向下按钮时数字递增和递减的速度”。这意味着,当你按住向上和向下按钮时,它只会影响滚动速度,而不是控制滑动速度。我相信默认NumberPicker的“向上”和“向下”按钮是在NumberPicker中突出显示或选择的数字上方和下方的数字。
发布于 2018-08-29 02:30:18
在默认的NumberPicker小部件中没有访问摩擦级别的公共方法。
您可以使用此自定义NumberPickerView。英文安装说明为here。
它完全按照你想要的方法来控制摩擦力水平:
//double the default scroll friction level
mNumberPickerView.setFriction(2 * ViewConfiguration.get(mContext).getScrollFriction());默认滚动摩擦力值为0.015f,可在here
中找到
https://stackoverflow.com/questions/51403083
复制相似问题