我是Firebase android应用程序开发的新手。 在这个应用程序中,我从Firebase数据库中获取了数据。 在这里,我想在recyclerview中实现显示更多功能以节省数据加载。 我在许多stackoverflow问题中都看到了解决方案。但是在每个问题中,适配器类都是在主要活动之外定义的。所以我无法正确理解。 在这里,我的适配器位于主要活动类中。
class MainActivity extends AppCompatActivity {
private RecyclerView postList;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PostRef=FirebaseDatabase.getInstance().getReference().child("Posts");
postList = (RecyclerView) findViewById(R.id.all_user_post_list);
postList.setHasFixedSize(true);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setReverseLayout(true);
linearLayoutManager.setStackFromEnd(true);
postList.setLayoutManager(linearLayoutManager);
displayAllUserPost();
}
private void displayAllUserPost() {
Query sortPost=PostRef;
FirebaseRecyclerOptions<Post> options=new FirebaseRecyclerOptions.Builder<Post>().setQuery(sortPost,Post.class).build();
FirebaseRecyclerAdapter<Post, PostsViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Post, PostsViewHolder>(options)
@Override
protected void onBindViewHolder(@NonNull final PostsViewHolder holder, final int position, @NonNull final Post model) {
final String PostKey = getRef(position).getKey();
holder.postfullname.setText(model.getFirstname() + " " + model.getLastname());
}
@NonNull
@Override
public PostsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.all_post_layout,parent,false);
PostsViewHolder viewHolder=new PostsViewHolder(view);
return viewHolder;
}
}
}
public static class PostsViewHolder extends RecyclerView.ViewHolder
{
TextView postfullname;
public PostsViewHolder(View itemView)
{
super(itemView);
postfullname = itemView.findViewById(R.id.user_post_full_name);
}
}
}
因此,我如何在首次加载仅10个项目时和在加载带有圆形进度条的10个以上项目后显示更多功能(显示更多按钮并不重要)。
最重要的是,首先只能加载10个项目。在用户向下滚动到最后一个(第10个)项目之前,不应加载其余项目
谢谢。