大家好,我从Recyclerview的Firebase中获取数据。为了更好地理解我的问题,请访问我之前的问题。 How do i add the show more functionality to getting firebase database?
这是我以前的问题。为此,我发现了一些逻辑(可能是错误的)。 如果我设置了查询,
Query sortPost=PostRef.orderByChild("count").limitToFirst(firstTenPost);
并且我将Scrolllistner设置为检测底部的滚动范围
postList.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);firstTwoPost=2;
Toast.makeText(MainActivity.this, "Last", Toast.LENGTH_LONG).show();
//So here i want to add +10 items with show more in recyclerview
}
}
});
答案 0 :(得分:1)
根据您的要求,您无需增加limitOfFirst()的限制。
您必须尝试使用startAt()方法。 请参考下面的代码以更好地理解。
首次加载:
代码应为
Query sortPost=PostRef.orderByChild("count").limitToFirst(firstTenPost);
并根据此查询的响应,使用迭代器从子记录中查找最后一个键。
您可以使用以下循环从响应快照中获取最后一个密钥,
for(DataSnapshot childSnap : dataSnapshot.getChindren()){
lastKey = childSnap.getKey();
}
然后在查询中加载更多使用
String lastKey = "Last Fetched Key From Earlier Response";
Query sortPost=PostRef.orderByChild("count").startAt(lastKey).limitToFirst(firstTenPost);
并根据此查询的响应,将 lastKey 变量更新为last以获取记录键。
注意:在loadmore响应上,您每次都必须跳过第一个值,以避免重复对象。