android - 阻止 NumberPicker 中最小值和最大值之间的转换

标签 android numberpicker

我正在开发 Android 应用程序。在内部某处,我正在显示 NumberPicker 小部件。

如何禁用最小值和最大值之间的转换?

我的意思是,我正在使用一个数字选择器,最小值为 0,最大值为 9999。它看起来像这样,

number picker

通过这种方式,用户可以快速挥动小部件从 0 跳到 9999。 我不想要这种行为。数字选择器小部件现在看起来像一个闭合的圆圈,我正在尝试查看如何在最小值和最大值之间准确地打破圆圈,以便从最小值和最大值看起来像这样:

number picker minimum value number picker maximum value

我怎样才能做到这一点?

我尝试过的:

  • 我在 NumberPicker API 中到处搜索,这似乎不是一个可以简单地使用方法设置的东西。
  • 我觉得可以使用方法setDisplayedValues(String[] displayedValues)方法在最小值之前和最大值之后添加空字符串,这样最小值之前就不会显示任何值了或者在最大值之后,但是用户仍然可以跳过它们,或者更糟:选择空值。

有什么想法吗?我是否必须亲自动手并深入研究小部件的实现?也许在触摸监听器内部?

最佳答案

您必须在数字选择器上调用 setWrapSelectorWheel(false)。请注意,在调用 setWrapSelectorWheel(false) 之前执行 setMinimumValue(...)setMaximumValue(...) )。如果您不这样做,它根本无法工作。

像我一样,您可能正在寻找一种通过 xml 来执行此操作的方法,但当时没有办法。

关于android - 阻止 NumberPicker 中最小值和最大值之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15683867/

相关文章:

android - 按钮内边距

Android - 在 onCreate() 代码之前触发 onPostCreate() 代码

java - 将网站文本从 URL 获取到字符串中 (Android)

android - Intent BOOT_COMPLETED 不适用于华为设备

java - 使用 NumberPicker 的自定义 DialogPreference 的值永远不会保存(或永远无法恢复)

java - Android:如何删除数字选择器中的分隔线

java - 如何在 Android 中禁用 NumberPicker 元素外部的滚动

java - Android-透明工具栏

android - NumberPicker Android 6.0 如何增加字体大小?

Android:NumberPicker 行为不正常