1

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

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

4

2 回答 2

2

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

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

于 2012-04-26T17:28:26.540 回答
1
  1. 保存列表中的当前位置(通过myListField.getSelectedIndex()),比如说

    int myVar = myListField.getSelectedIndex();

  2. 除去项目

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

就是这样。

于 2012-04-17T02:33:04.613 回答