当我在模拟器上执行以下代码时,它会抛出stackoverflow错误。
我认为错误来了,滚动时每个newhorizontalScroll值。
如何避免它或如何计算最终的水平滚动值?
int customfiledwidth = Display.getWidth()/3;
HorizontalFieldManager horizontalScrollLayout = new HorizontalFieldManager(HorizontalFieldManager.HORIZONTAL_SCROLL)
horizontalScrollLayout.setScrollListener(this);
// i add number of customfield on horizontalscrolllayout.....
public void scrollChanged(Manager manager, int newHorizontalScroll,int newVerticalScroll)
{
{
horizontalScrollLayout.setHorizontalScroll(newHorizontalScroll);
int fieldIndex =horizontalScrollLayout.getFieldAtLocation(newHorizontalScroll+customfieldwidth,0);
Field f = horizontalScrollLayout.getField(fieldIndex);
f.setFocus();
invalidate();
}}
}
答案 0 :(得分:1)
通过在您正在收听其滚动的同一个字段上调用setHorizontalScroll()
,您将进入无限循环。我会删除这一行,看看你的代码是否有效。