Как добавить Pagingnation в Recycleview в Android studio

#java #android #android-recyclerview #pagination

Вопрос:

Здравствуйте, ребята, пожалуйста, как я могу добавить pagingnation в recycleview в Android studio с помощью java. Я пытаюсь загрузить фотографии из базы данных firebase, которая работает нормально, но проблема в том, что она пытается загрузить все фотографии сразу, что замедляет работу приложения. Как я могу сначала загрузить в список 6 фотографий, а когда пользователь прокручивает его, загрузить больше фотографий.

Вот мой код для моего моего фрагмента

фрагмент открытого класса MemesFragment расширяет фрагмент {

 private RecyclerView recyclerViewMemePosts;
private MemePostAdapter memePostAdapter;
private List<MemePosts> memePosts;
private DatabaseReference root = FirebaseDatabase.getInstance().getReference("MemePosts");





private ProgressBar progressBar;

private Button upload;
private Context mContext;
private AdView mAdView, adView;
private ImageView shocker;
private InterstitialAd mInterstitialAd;




public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_memes, container, false);

    try {
        progressBar = view.findViewById(R.id.progress_circular);
        shocker = view.findViewById(R.id.memeMaker);

        shocker.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(mContext, MemeMakerActivity.class));
            }
        });

        recyclerViewMemePosts = view.findViewById(R.id.recycleViewPostsMeme);
        recyclerViewMemePosts.setHasFixedSize(true);
        recyclerViewMemePosts.setItemViewCacheSize(20);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        linearLayoutManager.setStackFromEnd(true);
        linearLayoutManager.setReverseLayout(true);
        recyclerViewMemePosts.setLayoutManager(linearLayoutManager);
        memePosts = new ArrayList<>();
        memePostAdapter = new MemePostAdapter(getContext(), memePosts);
        recyclerViewMemePosts.setAdapter(memePostAdapter);

        mContext = getActivity();


        root.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                try {
                    for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
                        MemePosts model = dataSnapshot.getValue(MemePosts.class);
                        memePosts.add(model);
                    }
                    memePostAdapter.notifyDataSetChanged();
                    progressBar.setVisibility(View.GONE);

                } catch (Exception e) {

                }

            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });


        upload = view.findViewById(R.id.Upload);

        upload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(mContext, MemePostActivity.class));

            }
        });
        MobileAds.initialize(mContext, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        MobileAds.initialize(mContext, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = view.findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
        adView.loadAd(adRequest);
    } catch (Exception e) {
        e.getMessage();
    }


    return view;

}
 

Комментарии:

1. Перейдите по этой ссылке. Я надеюсь, что это поможет: androidwave.com/pagination-in-recyclerview