Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改NumberPicker分割器颜色不适用于Android Api 29+;_Android_Divider_Numberpicker - Fatal编程技术网

更改NumberPicker分割器颜色不适用于Android Api 29+;

更改NumberPicker分割器颜色不适用于Android Api 29+;,android,divider,numberpicker,Android,Divider,Numberpicker,我正在使用下面的代码更改NumberPickerdivider颜色, 此代码不适用于Android Api 29+,因为不支持Dappusage mSelectionDivider private static void setDividerColor(NumberPicker picker, int color) { java.lang.reflect.Field[] pickerFields = NumberPicker.class.getDeclaredFields();

我正在使用下面的代码更改
NumberPicker
divider颜色, 此代码不适用于Android Api 29+,因为
不支持Dappusage mSelectionDivider

private static 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 | Resources.NotFoundException | IllegalAccessException e) {
          e.printStackTrace();
        }
        break;
      }
    }
}

将此样式设置为数字选择器的android:theme`

<style name="AppTheme.NumberPickerTheme">
        <item name="android:textColorSecondary">@color/yourDividerColor</item>
    </style>

@颜色/你的分割颜色


您可以像这样使用库:

implementation 'com.shawnlin:number-picker:2.4.11'
和xml格式:

<com.shawnlin.numberpicker.NumberPicker
    android:id="@+id/color_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:np_dividerColor="#000000"/>

创建您自己的小部件,而不是尝试使用反射来修改框架小部件。
<com.shawnlin.numberpicker.NumberPicker
    android:id="@+id/color_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:np_dividerColor="#000000"/>
numberPicker.setDividerColor(Color);