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