Java 正在加载未隐藏在Recyclerview android中的消息
我使用的是从Java 正在加载未隐藏在Recyclerview android中的消息,java,android,android-recyclerview,Java,Android,Android Recyclerview,我使用的是从Parse.com数据库加载数据。我面临的问题是,它显示了两个加载图像,如下图所示。我希望一次显示一个项目,然后滚动显示图标,然后加载下一个项目 Endlesscroll的代码为- public abstract class EndlessScroll extends RecyclerView.OnScrollListener { public static String TAG = EndlessScroll.class.getSimpleName(); priv
Parse.com
数据库加载数据。我面临的问题是,它显示了两个加载图像,如下图所示。我希望一次显示一个项目,然后滚动显示图标,然后加载下一个项目
Endlesscroll的代码为-
public abstract class EndlessScroll extends RecyclerView.OnScrollListener {
public static String TAG = EndlessScroll.class.getSimpleName();
private int previousTotal = 0; // The total number of items in the dataset after the last load
private boolean loading = true; // True if we are still waiting for the last set of data to load.
private int visibleThreshold = 2; // The minimum amount of items to have below your current scroll position before loading more.
int firstVisibleItem, visibleItemCount, totalItemCount;
Context context;
private int current_page = 1;
private LinearLayoutManager mLinearLayoutManager;
public EndlessScroll(LinearLayoutManager linearLayoutManager, Context context) {
this.mLinearLayoutManager = linearLayoutManager;
this.context = context;
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
visibleItemCount = recyclerView.getChildCount();
totalItemCount = mLinearLayoutManager.getItemCount();
firstVisibleItem = mLinearLayoutManager.findFirstVisibleItemPosition();
if (loading) {
if (totalItemCount > previousTotal) {
loading = false;
previousTotal = totalItemCount;
}
}
if (!loading && (totalItemCount - visibleItemCount)
<= (firstVisibleItem + visibleThreshold)) {
// End has been reached
// Do something
current_page++;
onLoadMore(current_page);
loading = true;
}
}
public abstract void onLoadMore(int current_page);
}
公共抽象类endlesscroll扩展了RecyclerView.OnScrollListener{
公共静态字符串标记=endlesscroll.class.getSimpleName();
private int previousTotal=0;//上次加载后数据集中的项目总数
private boolean load=true;//如果仍在等待加载最后一组数据,则为true。
private int visibleThreshold=2;//在加载更多内容之前,在当前滚动位置下方的最小项目数。
int firstVisibleItem、visibleItemCount、totalItemCount;
语境;
私有int当前页面=1;
私人线路布局经理;
public endlesscroll(LinearLayoutManager LinearLayoutManager,上下文){
this.mLinearLayoutManager=linearLayoutManager;
this.context=上下文;
}
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
visibleItemCount=recyclerView.getChildCount();
totalItemCount=mLinearLayoutManager.getItemCount();
firstVisibleItem=mLinearLayoutManager.findFirstVisibleItemPosition();
如果(加载){
如果(totalItemCount>previousTotal){
加载=假;
previousTotal=totalItemCount;
}
}
如果(!loading&&(totalItemCount-visibleItemCount)
这可能会对你有所帮助。参考此链接:谢谢@Sabari,这似乎是Vilen回答中的预期行为,但是如果有任何其他想法,请让我知道。