Я использую 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();
как мне сделать пагинацию вв этом случае.
место, где утилита-ретранслятор получает данные
панель Reycler читает все эти ключи getpost данных из данных, создает новую ссылку на базу данных для фактических данных, а затем загружает данные. НоЯ хочу загрузить 10 элементов в начале, а затем, когда пользователь достиг нижней панели загрузчика, еще 10.