我正在将RecyclerView与FirebaseRecyclerAdapter一起使用。但是当我运行我的应用程序时。 RecyclerView加载所有数据。但是我想先加载10个项目,然后用户又要加载10个项目,底部则是另一个。
我搜索了分页,但是所有教程都自动假定我将我的数据保留在给适配器的参考中。但是İ保留这样的数据。
所有帖子数据都存储在“ postall”父文件夹下。
然后,用户运行应用程序回收器视图获取第二张图片,然后从那里获取发布密钥并创建新引用,然后加载数据。
我的代码:
options = new FirebaseRecyclerOptions.Builder<Post>().setQuery(reference,Post.class).build();
vhadapter = new FirebaseRecyclerAdapter<Post, viewholder>(options) {
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
protected void onBindViewHolder(@NonNull final viewholder holder, final int position, @NonNull Post model) {
getRef(position).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
DatabaseReference reference1=FirebaseDatabase.getInstance().getReference().child("postall").child(dataSnapshot.getKey());
reference1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
//get data
}
else{
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@NonNull
@Override
public viewholder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.home_item_image,viewGroup,false);
return new viewholder(view);
}
};
vhadapter.setHasStableIds(true);
recyclerView.setAdapter(vhadapter);
vhadapter.startListening();
在这种情况下如何进行分页。
place where recyclerview get data
Reycler视图从数据中读取所有这些数据getpost密钥,创建对实际数据的新数据库引用然后加载数据。但是我想在开始时加载10个项目,然后当用户到达recyclerview底部时再加载10个项目。