Skip to content

vkondrav/SwiftAdapter

Repository files navigation

SwiftAdapter

SwiftAdapter is an easy to use expandable list recyclerview adapter

  • extend one class to get all the features
  • easy and quick to setup
  • easy to customize

Version

Download

Note: this version is stable but I have not tested on anything outside my own devices and my specific data sets. For best results try to not steer too far away from the sample project.

Preview

A sample app has been included with the project, just compile and run, or install this sample apk. You can also watch a preview video. I'm working on releasing a version to the play store soon.

SwiftAdapter

Import Using Gradle

compile 'com.vkondrav.swiftadapter:swift-adapter:0.2.1'

Quickstart

Extend the SwiftAdapter

private static class Adapter extends SwiftAdapter<Adapter.ViewHolder> {

Declare you main ViewHolder

public class ViewHolder extends RecyclerView.ViewHolder {
  public ViewHolder(View itemView) {
    super(itemView);
  }
}

Override count method to declare how many items of that type you will have

@Override
public int getNumberOfLvl0Items() {
  return 10;
}

Override onCreate method to create a specific type of item

@Override
public ViewHolder onCreateLvl0ItemViewHolder(ViewGroup parent) {
  return new ViewHolder(layoutInflater.inflate(R.layout.lvl0_item_layout, parent, false));
}

Override to bind data to the viewholder

@Override
public void onBindLvl0Item(ViewHolder holder, ItemIndex index) {
}

Advanced

There are 4 Levels where the view holders can exist. Each section hosts the items and sections below it.

  • Level 0 Items
  • Level 1 Sections
    • Level 1 Items
    • Level 2 Sections
      • Level 2 Items
      • Level 3 Sections
        • Level 3 Items

Each layer has a set of methods to construct it. By overriding these methods you can create each layer of the list

int getNumberOf_()
ViewHolder CreateViewHolder_()
void BindViewHolder_(ViewHolder holder, ItemIndex)

Open and Close each section by calling these methods and passing ItemIndex from that section.

void openCloseLvl1Section(ItemIndex itemIndex);
void openCloseLvl2Section(ItemIndex itemIndex);
void openCloseLvl3Section(ItemIndex itemIndex);

ItemIndex can always be obtained from the specific OnBind Method or by calling getCurrentItemIndex and passing the ViewHolder for that section

public ItemIndex getCurrentItemIndex(T holder)

License

Apache 2.0

About

SwiftAdapter is an easy to use expandable list recyclerview adapter

Resources

License

Stars

45 stars

Watchers

3 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages