我正在开发一个Android应用程序。 在某处,我正在显示NumberPicker
小部件。
如何禁用最小值和最大值之间的转换?
我的意思是,我使用的是数字选择器,最小值为0,最大值为9999.看起来像这样,
通过这种方式,用户可以快速将小部件从0跳转到9999.我不希望出现这种情况。 数字选择器小部件现在看起来像一个封闭的圆圈,我试图看看如何在最小值和最大值之间精确地打破圆圈,以便它从最小值和最大值看起来像这样:
我怎样才能做到这一点?
我试过的:
NumberPicker
API中搜索到的所有地方,似乎这不是人们可以使用方法设置的东西。 setDisplayedValues(String[] displayedValues)
方法在最小值之前和最大值之后添加空字符串,这样在最小值之前或之后没有值显示最大值, 但是用户将仍然可以扔过他们或WORSE:选择空值。 有任何想法吗? 我是否必须弄脏手,并深入了解小部件实现? 触摸听众里面可能吗?
您必须在数字选择器上调用setWrapSelectorWheel(false)
。 但是在调用setWrapSelectorWheel(false)
之前 ,请注意setMinimumValue(...)
和setMaximumValue(...)
setWrapSelectorWheel(false)
。 如果你不这样做,它就行不通。
像我一样,你可能正在寻找一种通过xml来实现这一目标的方法,但当时没办法。
是不是这个setWrapSelectorWheel(false)
( 来自API )?
正如所指出的那样,setWrapSelectorWheel(false)可以解决问题,因此应该接受其中一个提供的答案。
通常,此调用顺序有效:
picker.setMinValue(0); picker.setMaxValue(stringValuesArray.length - 1); picker.setDisplayedValues(stringValuesArray); picker.setValue(defaultValue); picker.setWrapSelectorWheel(false);