如何自定义NumberPicker

时间:2013-09-24 18:48:38

标签: android numberpicker

我找到了2个内置的NumberPickers:

http://techbooster.org/wp-content/uploads/2011/12/NumberPicker_SS_1.png

默认情况下,它是第一个,但是当我在AndroidManifest.xml中添加android:theme="@android:style/Theme.NoTitleBar"时,它将成为第二个。

我怎么能把这一行(我需要它)并仍然得到第一个NumberPicker?

5 个答案:

答案 0 :(得分:1)

你正在设置非全息主题,所以你得到非全息数字选择器。

看到这个作为参考,它与你问的基本相同

Remove titlebar in xml

答案 1 :(得分:1)

问题是@android:style/Theme是API版本10(2.3)及更低版本的设备的Android主题。

如果您想保留Holo支持,则应使用@android:style/Theme.Holo

如果您还需要支持没有Holo的设备,则需要创建asset folders for those devices并在那里指定主题。

答案 2 :(得分:1)

您可以使用:

android:theme="@android:style/Theme.Holo.NoActionBar" 

如果您不想显示ActionBar并仍然获得Holo风格的NumberPicker。

答案 3 :(得分:0)

有一个名为BaseActivity的超类,它会被应用中的所有活动扩展。在它的onCreate中调用此

requestWindowFeature(Window.FEATURE_NO_TITLE);

它将从您的所有活动中删除标题栏,您可以使用您想要的任何主题。您将获得的唯一抽奖是标题栏在启动您的应用时会显示一小段时间,但不会再次显示。

答案 4 :(得分:0)

此外,您还可以更改以下属性:

exampleActivity.xml中的numberpicker定义

<NumberPicker
<!-- ... -->
android:background="@drawable/customshape" />

drawable / customshape.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
    android:startColor="@color/numberpicker_color_range_start"
    android:endColor="@color/numberpicker_color_range_end"
    android:angle="270"/>
</shape> 

solidColor ...是主要的全息颜色 以及带有海关形状的背景以获得额外的颜色: