Blackberry - 在删除项目后阻止ListField滚动

时间:2012-04-16 16:00:58

标签: blackberry scroll listfield

我有一个ListField,它是一个可以选择和删除的项目的长垂直列表。删除项目后,列表将滚动回到顶部。我可以使用setSelectedIndex(rowIndex)返回我一直在查看的列表中的位置,但这不会保留我在屏幕上查看的行。相反,该行显示在屏幕的底部,因为一旦屏幕上出现正确的索引,它就会停止滚动。

有没有办法可以删除一行并保留我的列表视图/点?

2 个答案:

答案 0 :(得分:2)

刚刚意识到我使用了错误的ListField.setSize()函数。

ListField.setSize(int size)将焦点发送回列表顶部,但是如果需要,可以使用ListField.setSize(int size,int focusRow)将焦点保留在“currentIndex”。 希望这有助于某人

答案 1 :(得分:1)

  1. 保存列表中的当前位置(通过myListField.getSelectedIndex()),比方说

    int myVar = myListField.getSelectedIndex();

  2. 删除项目

  3. 使用myVar,并使用当前列表大小和myVar值计算并通过myListField.setSelectedIndex(int index);设置列表索引使用另一个线程和Application.invokeLater(Runnable thread);来避免此操作更新应用程序的UI时发生事件锁定问题。

  4. 就是这样。