我正在Listview上开发一个应用程序。我的应用应该如下所示: 当我在第10个位置滚动列表视图时它应该首次显示10个元素它应该开始加载下10个项目,依此类推。在加载下一个10项时,我应该与listview的前一项进行交互。我不希望在加载时出现进度对话框。我已经完成了所有工作,但在加载listview数据时遇到了问题。当listview开始加载项目时,我的listview挂起。它既不向上也不向下,如果我快速滚动它会显示我强制关闭对话框。
任何人都可以帮我解决这个问题吗?
非常感谢任何帮助。
由于
答案 0 :(得分:0)
理解您的代码太复杂了。
但这里有一些技巧可以帮到你。
在您的适配器中,它们应该是这样的方法
public void setList(List<YouCoustemClass> list) {
if (list != null && list.size() > 0) {
items.clear();
items.addAll(list);
notifyDataSetChanged();
}
}
OnScroll
方法将如下int lastInScreen = firstVisibleItem + visibleItemCount;
if ((lastInScreen == totalItemCount) && (loadingMore)) {
adapter.notifyDataSetChanged();
}
if ((lastInScreen == totalItemCount) && !(loadingMore))`
此处添加了额外的check
,就像您开始下载一样,不要一次又一次地启动它。在true
中制作AsyncTask's onPreExecute
,在false
中制作onPostExecute
。
setList
。这是您在Scroll
面临崩溃的原因。您正在列表中添加数据,但未调用notifyDataSetChanged();
Thread