如何减少 NumberPicker 中的填充
我想要类似的东西:
归档非常容易:
String[] values = {"Public", "Shared", "Private",....};
NumberPicker np=
(NumberPicker) findViewById(R.id.numberPicker);
np.setMaxValue(values.length-1);
np.setMinValue(0);
np.setDisplayedValues(values);
并简单地设置小layout_height
and scaleX
, scaleX
:
<NumberPicker
android:id="@+id/numberPicker"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:scaleX="2.5"
android:scaleY="2.5"/>
我同意,NumberPicker
不过,该标准很难定制。
我希望,它有帮助
不幸的是,数字选择器不适合样式。
我建议使用一个图书馆,比如SimonTV的图书馆
这可能有点晚了,但是您可以在其上设置显式高度,NumberPicker
然后遵循给定的高度并调整项目之间的空间。
尝试自定义您的NumberPicker
主题,如下所示:
<style name="Widget.Holo.NumberPicker" parent="Widget.NumberPicker">
<!-- Customize your theme here -->
<item name="android:selectionDivider">@android:drawable/numberpicker_selection_divider</item>
<item name="android:selectionDividerHeight">2dp</item>
<item name="android:selectionDividersDistance">25dp</item>
<item name="android:internalMinWidth">50dp</item>
<item name="android:internalMaxHeight">100dp</item>
</style>
希望对你有帮助。
正如 Grebulon 指出的那样,如果您使用 libray by ,自定义选择器非常简单。
这些是代码和结果-
<net.simonvt.numberpicker.NumberPicker
android:id="@+id/numberPicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:internalMaxHeight="100dp"
app:selectionDividersDistance="30dp"/>
我被分叉了一次以增加选择轮的数量。这是上面代码的输出。
一个简单的解决方案是降低 NumberPicker 的高度,这也会导致数字之间的内部间距减小,在我的情况下,我将其设置为 120dp,这样就可以完成工作
android:layout_height="120dp"
这是我的 NumberPicker 的完整代码
<NumberPicker
android:id="@+id/numberPicker"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:layout_marginEnd="16dp"
android:theme="@style/myNumberPicker" />
对于样式,我在样式文件中使用了以下主题
<!-- Custom style for Number Picker -->
<style name="myNumberPicker" parent="Theme.MyApplication">
<item name="android:textSize">26sp</item>
<item name="android:textColorPrimary">@color/textColorBlue</item>
<item name="colorControlNormal">@android:color/transparent</item>
<item name="android:fontFamily">@font/montserrat_semi_bold</item>
</style>