DevAhamed / MultiViewAdapter

Easily create complex recyclerview adapters in android
https://devahamed.github.io/MultiViewAdapter
Apache License 2.0
818 stars 148 forks source link

Unable to provide our own PositionType within a section. #113

Open rberends opened 4 years ago

rberends commented 4 years ago

Please complete the following information:

For our own Section implementation, which features a header, a ListSection and a footer, we would like the ability to customize PositionType for an itemPosition in a section. Unfortunately, those methods are currently not accessible within Sections, as they are limited in access to the package (package private).

image

Would it be possible to make getPositionType() and getCount() public, so we can have access to these methods and get the correct position data for our custom decorator?

An example in the existing HeaderSection class, where the header is taken into account:

  @Override int getPositionType(int itemPosition, int adapterPosition,
      RecyclerView.LayoutManager layoutManager) {
    int result = super.getPositionType(itemPosition, adapterPosition, layoutManager);
    if (itemPosition == 0 && getCount() > 1) {
      result = result ^ BOTTOM;
    } else if (itemPosition != 0 && (result & TOP) == TOP) {
      result = result ^ TOP;
    }
    return result;
  }

We would for example like the ability to override this behaviour and have our own values returned based on design/business logic, providing us with TOP, MIDDLE and LAST according to how we would divide a section.