Firebase переработчик просмотра адаптер нумерация страниц - PullRequest
0 голосов
/ 09 октября 2018

Я использую 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.

...