更改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);