У меня есть настраиваемое поле списка объектов с реализованной процедурой прокрутки.
public int moveFocus(int amount, int status, int time) {
invalidate(getSelectedIndex());
int unused = super.moveFocus(amount, status, time);
return Math.abs(unused) + 1;
}
public boolean navigationMovement(int dx, int dy, int status, int time) {
if (dy > 0) {
if (selectedIndex < getSize() - 1) {
setSelectedIndex(selectedIndex + 1);
}
} else if (dy < 0) {
if (selectedIndex > 0) {
setSelectedIndex(selectedIndex - 1);
}
}
return true;
}
Прокрутка работает нормально, когда я выполняю прокрутку с помощью треквилла, но прерывается, когда приложение запускается на устройстве с трекболом. Я понял, что проблема заключается в framework метод moveFocus, который вообще не вызывается при прокрутке с помощью трекбола.