【问题标题】:Change layout on Android NumberPicker在 Android NumberPicker 上更改布局
【发布时间】:2012-11-25 18:03:32
【问题描述】:

有没有办法改变AndroidNumberPicker上两条横线的颜色?

【问题讨论】:

  • 你试过用谷歌搜索你的问题吗?

标签: android android-layout android-widget


【解决方案1】:

【讨论】:

  • 虽然理论上可以回答这个问题,但我们希望您在回答中包含链接文章的基本部分,并提供link for reference。如果不这样做,答案就会面临链接失效的风险。
【解决方案2】:

解决方案 1

如果您只关心更改 NumberPicker 的颜色,here 是一个非常简单的解决方案,使用以下方法。

private void setDividerColor(NumberPicker picker, int color) {

    java.lang.reflect.Field[] pickerFields = NumberPicker.class.getDeclaredFields();
    for (java.lang.reflect.Field pf : pickerFields) {
        if (pf.getName().equals("mSelectionDivider")) {
            pf.setAccessible(true);
            try {
                ColorDrawable colorDrawable = new ColorDrawable(color);
                pf.set(picker, colorDrawable);
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (Resources.NotFoundException e) {
                e.printStackTrace();
            }
            catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            break;
        }
    }
}

然后像这样调用函数

setDividerColor(mNumberPicker, Color.GREEN);

解决方案 2

虽然第一个解决方案很简单,但它是有限的。我建议使用 this 存储库,它提供 MaterialNumberPickers,允许更大程度的自定义。在 repo 的自述文件中有关于如何添加 Gradle 依赖项的说明,因此我不会在此处包含它们,但随后可以将 MaterialNumberPickers 添加到 xml 中,如下所示。

<com.github.stephenvinouze.materialnumberpickercore.MaterialNumberPicker
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:mnpMaxValue="50"
    app:mnpMinValue="1"
    app:mnpEditable="false"
    app:mnpFontname="Hand.ttf"
    app:mnpSeparatorColor="@color/colorAccent"
    app:mnpTextColor="@color/colorPrimary"
    app:mnpTextSize="16sp"
    app:mnpTextStyle="bold"
    app:mnpValue="10"
    app:mnpWrapped="false" />

此外,MaterialNumberPicker 扩展了 NumberPicker,因此在 xml 中进行此更改不需要对 .java 文件进行任何后端更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 2016-11-03
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多