我有一个带有实现滚动例程的自定义对象列表字段。
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;
}
当我使用拨轮滚动时,滚动工作正常,但在带有轨迹球的设备上启动应用程序时会损坏。我发现问题出在框架方法 moveFocus 上,当我使用轨迹球滚动时根本不会调用它。