更改 NumberPicker 分隔线颜色不适用于 Android Api 29+
Changing NumberPicker divider color not working with Android Api 29+
我正在使用下面的代码来更改 NumberPicker
分隔线颜色,
此代码不适用于 Android Api 29+ 因为 UnsupportedAppUsage 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>
和
<NumberPicker
...
android:theme="@style/AppTheme.NumberPickerTheme"
/>
您可以像这样使用 number-picker
库:
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"/>
并在 java 中设置颜色:
numberPicker.setDividerColor(Color);
我正在使用下面的代码来更改 NumberPicker
分隔线颜色,
此代码不适用于 Android Api 29+ 因为 UnsupportedAppUsage 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>
和
<NumberPicker
...
android:theme="@style/AppTheme.NumberPickerTheme"
/>
您可以像这样使用 number-picker
库:
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"/>
并在 java 中设置颜色:
numberPicker.setDividerColor(Color);