【发布时间】:2021-03-14 13:24: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 divider numberpicker