Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pirayeh/paginationRecyclerView

Open more actions menu

Repository files navigation

Pagination RecyclerView

a simple library for generic data pagination.

NPM version NPM version


How to Use

  • Step 1: Add the JitPack repository to your build file

    Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  • step 2: Add the dependency to your module gradle
dependencies {
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'com.github.pirayeh:paginationRecyclerView:1.0.1'
}

Example:

🧩 Extends adapter

class MyAdapter extends PaginationAdapter<String, MyAdapter.SampleViewHolder> {

    MyAdapter(Context context, List<String> dataSet) {
        super(context, dataSet);
    }

    @NonNull
    @Override
    public SampleViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.layout_row, parent, false);
        return new SampleViewHolder(view);
    }


    class SampleViewHolder extends PaginationViewHolder<String> {

        private TextView txtRow;

        SampleViewHolder(@NonNull View itemView) {
            super(itemView);
            txtRow = itemView.findViewById(R.id.txtRow);
        }

        @Override
        public void bindData(String data) {
            txtRow.setText(data);
        }

        @Override
        public void onClick(View v) {
            if (mItemClickListener != null)
                mItemClickListener.onItemSelect(dataSet.get(getCurrentPosition()));
        }
    }
}

🎲 initialize RecyclerView

private PaginationRecyclerView recyclerView;
private PaginationAdapter adapter;
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
recyclerView.setStartLoadingFromLast(4);
recyclerView.setRowPerPage(row_per_page);
recyclerView.setOnLoadMoreListener(new PaginationRecyclerView.OnLoadMoreListener() {
    @Override
    public void onRequestLoadMore(int page, int rowPerPage) {
         //fetch data from server
    }

    @Override
    public void onLoadingChanged(boolean isLoading) {
          //play and pause loading
          //loadingView.setVisibility(isLoading ? View.VISIBLE : View.GONE);
    }
});

adapter = new MyAdapter(this, null);
recyclerView.setAdapter(adapter);

🔌 set data to RecyclerView

adapter.addAllItems(/*list of data*/);

or:

adapter.addItems(/*list of data*/);

or:

adapter.addItem(data.get(index));

♻ if need to clear all data from adapter and fetch again call the refresh() method from recyclerView :

recyclerView.refresh();

🖱 set item click listener

adapter.setOnItemClickListener(data -> {
  Toast.makeText(this, data.toString(), Toast.LENGTH_SHORT).show();
});

👀 See sample to better understanding.


Version

  • 1.0.1

About

a simple library for generic data pagination.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.