hendraanggrian / recyclerview-expandable

RecyclerView implementation of traex's ExpandableLayout

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

download build license

Expandable RecyclerView

RecyclerView implementation of traex's ExpandableLayout.

Download

repositories {
    google()
    jcenter()
}

dependencies {
    compile "com.hendraanggrian.recyclerview:recyclerview-expandable:$version"
}

Usage

demo

Create a row of your RecyclerView:

<com.hendraanggrian.recyclerview.widget.ExpandableItem
    android:id="@+id/row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:duration="500"
    app:layoutHeader="@layout/view_content"
    app:layoutContent="@layout/view_header"/>

Create your adapter, which must extend ExpandableRecyclerView.Adapter:

public class MyAdapter extends ExpandableRecyclerView.Adapter<MyAdapter.ViewHolder> {

    public MyAdapter(LinearLayoutManager layout) {
        super(layout);
        ...
    }

    @Override
    public void onBindViewHolder(MyAdapter.ViewHolder holder, final int position) {
        super.onBindViewHolder(holder, position);
        ...
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        ...
    }
}

Have an ExpandableRecyclerView somewhere in your app, regular RecyclerView works too.

<com.hendraanggrian.recyclerview.widget.ExpandableRecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Then pass LinearLayoutManager to the adapter:

LinearLayoutManager layout = new LinearLayoutManager(this);
RecyclerView.Adapter adapter = new MyAdapter(layout);

recyclerView.setLayoutManager(layout);
recyclerView.setAdapter(adapter);

About

RecyclerView implementation of traex's ExpandableLayout

License:Apache License 2.0


Languages

Language:Java 71.5%Language:Kotlin 28.5%