gpt4 book ai didi

Android - 如何停止 ListView.setAdapter();打断 ScrollView ?

转载 作者:行者123 更新时间:2023-11-30 02:45:18 27 4
gpt4 key购买 nike

我有一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com