MultiViewAdapter icon indicating copy to clipboard operation
MultiViewAdapter copied to clipboard

Unable to provide our own PositionType within a section.

Open rberends opened this issue 4 years ago • 0 comments

Please complete the following information:

  • Android API level: [N/A]
  • Library Version: [3.0.0]
  • Recyclerview Version [N/A]

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.

rberends avatar Feb 12 '20 09:02 rberends