我创建了一个带有一些字符串值的数字选择器。
public void setValues() {
boolean defaultAvaliable = false;
int defaultRow = 0;
String[] values = new String[pickValues.size()];
for (int i = 0; i < pickValues.size(); i++) {
if (pickValues.get(i).equals("01:00")) {
defaultAvaliable = true;
defaultRow = i;
}
values[i] = pickValues.get(i);
}
timePicker.setMaxValue(values.length - 1);
timePicker.setMinValue(0);
timePicker.setWrapSelectorWheel(false);
timePicker.setDisplayedValues(values);
if (defaultAvaliable) {
timePicker.setValue(defaultRow);
}
}
当我滚动到边缘值(第一个或最后一个)时,选择器首先以奇怪的,不平滑的方式跳转到该项目,之后当我尝试返回其他值时,它不会滚动。拾取器在边缘值上出现故障,一段时间后它最终会返回。在某些方面,它看起来像我会滚动边缘值,它需要一些滚动才能回来。
是否有其他人遇到此问题,或者是否有人有任何建议要检查?
编辑1:
所以我必须指出,我知道问题是当我在我的numberpicker中更改字体大小时,并且不知道为什么。一旦我将字体大小设置为超过39,它就会开始卡在第一个和最后一个项目上。
private void updateView(View view) {
if(view instanceof EditText){
((EditText) view).setTextSize(39);
((EditText) view).setTextColor(getResources().getColor(R.color.mp_white));
((EditText) view).setFocusable(false);
}
}
有谁知道行大小是多少? 或者如果我必须更改它的大小,那么它会正确检测到滚动吗?