用了NumberPicker来实现一个选择器的时候发现一个问题,选择器中的文本是可以被自己定制的,然后当选择器第一次加载的时候,定制的样式会显示不出来。搜寻一番后终于发现问题所在,记录一下。
NumberPicker picker = (NumberPicker)view.findViewById(id.picker);
picker.setMinValue(0);
picker.setMaxValue(100);
picker.setWrapSelectorWheel(false);
picker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
return String.valueOf(50-value);
}
});
//解决选择器加载后,第一次无法应用Formatter的问题
try {
Method method = picker.getClass().getDeclaredMethod("changeValueByOne", boolean.class);
method.setAccessible(true);
method.invoke(picker, true);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}