Я сделал новостную ленту с FirebaseRecyciclerView, но проблема в том, что они загружаются сразу, а прокрутка очень медленная и запаздывающая.Я хочу добавить частичную загрузку и кеширование.Как Facebook, Twitter, Instagram и т. Д. Я пытался с Волей, но я не могу понять это.Может кто-то с большим знанием сказать мне, что является лучшим решением для моей проблемы.
Я пытался с этим ответом, но не получил никаких результатов Firebase загружает данные динамически при прокрутке
private void DisplayAllUsersPosts()
{
Query SortPostsInDescendingOrder = PostsRef.orderByChild("counter");
FirebaseRecyclerAdapter<Posts, PostsViewHolder> firebaseRecyclerAdapter =
new FirebaseRecyclerAdapter<Posts, PostsViewHolder>
(
Posts.class,
R.layout.all_posts_layout,
PostsViewHolder.class,
SortPostsInDescendingOrder
)
{
@Override
protected void populateViewHolder(PostsViewHolder viewHolder, Posts model, int position)
{
final String PostKey = getRef(position).getKey();
viewHolder.setFullname(model.getFullname());
viewHolder.setTime(model.getTime());
viewHolder.setDate(model.getDate());
viewHolder.setDescription(model.getDescription());
viewHolder.setUser_thumb_image(getApplicationContext(), model.getUser_thumb_image());
viewHolder.setPostimage(getApplicationContext(), model.getPostimage());
viewHolder.setLikeButtonStatus(PostKey);
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent clickPostIntent = new Intent(MainActivity.this, ClickPostActivity.class);
clickPostIntent.putExtra("PostKey", PostKey);
startActivity(clickPostIntent);
}
});
viewHolder.CommentPostButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent commentsIntent = new Intent(MainActivity.this, CommentsActivity.class);
commentsIntent.putExtra("PostKey", PostKey);
startActivity(commentsIntent);
}
});
viewHolder.LikePostButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LikeChecker = true;
LikesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(LikeChecker.equals(true)){
if(dataSnapshot.child(PostKey).hasChild(currentUserID)){
LikesRef.child(PostKey).child(currentUserID).removeValue();
LikeChecker = false;
}else{
LikesRef.child(PostKey).child(currentUserID).setValue(true);
LikeChecker = false;
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
});
}
};
postList.setAdapter(firebaseRecyclerAdapter);
}