gpt4 book ai didi

Android动态加载 ListView onScrollListener问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:24 25 4
gpt4 key购买 nike

我实现了一个 ListView ,每个用户滚动到底部屏幕,它会自动将新数据添加到 ListView 滚动完成后,onScroll() 会调用进入显示 View 的每个新项目,从滚动开始到结束。

lv_best = (ListView) findViewById(R.id.lv_best);
bestadapter = new LazyAdapter(this, lst_tab_best);
lv_best.setAdapter(bestadapter);
lv_best.setOnScrollListener(new AbsListView.OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) { }

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {

Log.d("onScroll ", firstVisibleItem+"-"+visibleItemCount+"-"+totalItemCount);
boolean loadMore = firstVisibleItem + visibleItemCount >= totalItemCount;
if(loadMore){
new ChangeTab_best().execute();
}
}
});

我在模拟器中运行,上面列出了 5 个项目但我无法检测到 ListView 中滚动的结束,多次调用 ChangeTab_best()。当我看到 Logcat android 时,所有变量 firstVisibleItem、visibleItemCount、totalItemCount 始终等于 0

那么这里发生了什么?

最佳答案

要检测屏幕底部的项目,您必须使用 firstVisibleItemvisibleItemCount。我创建了一个 demo example同样,使用 AsyncTask 将在后台加载项目并更新 UI。

firstVisibleItemvisibleItemCount 的总和将为您提供加载的项目数,然后您可以实现加载更多项目的逻辑。

int loadedItems = firstVisibleItem + visibleItemCount;

关于Android动态加载 ListView onScrollListener问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13761639/

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