gpt4 book ai didi

android - 如何在滚动时为 recycleView 加载更多项目

转载 作者:太空狗 更新时间:2023-10-29 16:01:06 24 4
gpt4 key购买 nike

我正在使用回收 View ,我通过 json 从网络获取数据并使用适配器将项目添加到我的回收 View 。我想在用户到达回收 View 末尾时获取新项目。

我将 GridLayoutManager 用于我的回收 View 。这是代码:

    int pastVisiblesItems, visibleItemCount, totalItemCount;
GridLayoutManager mLayoutManager;
private boolean loading = true;

recycle=(RecyclerView)findViewById(R.id.recycle);
mLayoutManager = new GridLayoutManager(this, 3);
// (Context context, int spanCount)
recycle.setLayoutManager(mLayoutManager);

recycle.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

visibleItemCount = mLayoutManager.getChildCount();
totalItemCount = mLayoutManager.getItemCount();
pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();
if (loadmore) {
if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
page = page + 1;
Toast.makeText(Cats.this, "test", Toast.LENGTH_SHORT);
}
}
}
});

我到达了回收 View 的末尾,但它没有向我显示任何 toast,所以我认为它不理解我到达了回收 View 的末尾。

这段代码有什么问题?

最佳答案

我为此沮丧了很长时间。但终于找到了解决方法。如果您使用的是 RecyclerView,那么您一定也使用了自定义适配器。在您填充 View 的地方,只需检查您是否正在填充列表中的最后一个元素。

public abstract class Adapter extends RecyclerView.Adapter<VH> {

protected final List<String> items;
protected final Context context;

protected Adapter(Context context) {
this.context = context;
this.items = new ArrayList<>();
}

@SuppressWarnings("unused")
public final void add(String item) {
items.add(item);
notifyDataSetChanged();
}

@Override
public final void onBindViewHolder(VH holder, int position) {
holder.textView.setText(items.get(position).toString());
if (position == items.size() - 1)
// Reached End of List
}

@Override
public final int getItemCount() {
return items.size();
}

}

关于android - 如何在滚动时为 recycleView 加载更多项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399751/

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