我有一个 ListView,它有一个方法 (public ArrayAdapter<String> populateListView(){}
) 来更新适配器。我每 500 毫秒调用一次 lv.setAdapter(populateListView();
.这有效,但如果我向下滚动 ListView,当调用该方法时,它会重置我的 View 并自动将我滚动到顶部。因此,如果我的 ListView 进度为 80%,当调用该方法时,我将重置为 0%。
如何在不重置滚动位置的情况下持续填充我的 ListView?
我已经试过调用 lv.getScrollY();
在设置适配器之前,然后 lv.setScrollY();
但这没有帮助。我也试过打电话 lv.scrollTo(0, scrollY);
但这没有帮助。
如何在更新适配器时停止重置滚动位置?
最佳答案
尝试更新适配器中的项目并调用 adapter.notifyDataSetChanged() 而不是创建新的适配器。
例子:
adapter.replaceItems(yourNewListWithData);
adapter.notifyDataSetChanged();
您必须自己实现 replaceItems 方法。
public void replaceItems(List<? extends E> newItems) {
entries.clear();
entries.addAll(newItems);
}
关于Android - 如何停止 ListView.setAdapter();打断 ScrollView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25148262/