Sectioned RecyclerView

Sectioned RecyclerView allows you to easily split a RecyclerView into sections with headers.


Gradle Dependency

jCenter Build Status License

The Gradle dependency is available via jCenter. jCenter is the default Maven repository used by Android Studio.


Add this to your module’s build.gradle file:

dependencies {
    // ... other dependencies
    compile 'com.afollestad:sectioned-recyclerview:0.2.3'


Here’s a basic example:

public class MainAdapter extends SectionedRecyclerViewAdapter<MainAdapter.MainVH> {

    public int getSectionCount() {
        return 20; // number of sections.

    public int getItemCount(int section) {
        return 8; // number of items in section (section index is parameter).

    public void onBindHeaderViewHolder(MainVH holder, int section) {
        // Setup header view.

    public void onBindViewHolder(MainVH holder, int section, int relativePosition, int absolutePosition) {
        // Setup non-header view.
        // 'section' is section index.
        // 'relativePosition' is index in this section.
        // 'absolutePosition' is index out of all non-header items.
        // See sample project for a visual of how these indices work.

    public MainVH onCreateViewHolder(ViewGroup parent, int viewType) {
        // Change inflated layout based on 'header'. 
        View v = LayoutInflater.from(parent.getContext())
                .inflate(viewType == VIEW_TYPE_HEADER ? R.layout.header : R.layout.normal, parent, false);
        return new MainVH(v);

    public static class MainVH extends RecyclerView.ViewHolder {

        public MainVH(View itemView) {
            // Setup view holder.
            // You'd want some views to be optional, e.g. for header vs. normal.

Layout Manager

If you’re using a LinearLayoutManager, you’re all set. If you’re using a GridLayoutManager, you need to tell the adapter:

GridLayoutManager manager = // ...

This is vital to getting headers to span all columns.

Related Repositories



Implement a multi-sectioned RecyclerView using a custom adapter interface. ...



The project in this repository is an attempt at a simple implementation of sectioned, expandable, grid RecyclerView ...



Android Section Adapter allows you to easily create a RecyclerView.Adapter which will automatically sort your data into sections and add a header above each section. ...



A simple adapter for Android's RecyclerView which supports sectioned views ...

Top Contributors

afollestad agatti pflammertsma d-fournier


-   0.2.3 zip tar
-   0.2.2 zip tar
-   0.2.1 zip tar
-   0.2.0 zip tar
-   0.1.0 zip tar