Android numberpicker 边缘滚动故障

sch*_*mru 5 java android numberpicker

我创建了一个带有一些字符串值的数字选择器。

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我滚动到边缘值(第一个或最后一个)时,选择器首先以一种奇怪的、不平滑的方式跳转到该项目,然后当我尝试返回其他值时它不会滚动。选择器在边缘值上出现故障,一段时间后它最终返回。在某种程度上,我似乎会滚动边缘值,它需要一些滚动才能返回。

有没有其他人遇到过这个问题,或者有没有人有任何建议要检查什么?

编辑 1:

所以我必须指出我知道问题是当我在我的数字选择器中更改字体大小时,不知道为什么。一旦我将字体大小设置为 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道行大小是多少?或者,如果我必须更改它的大小,以便它正确检测滚动?