TonicArtos / SuperSLiM

A layout manager for the RecyclerView with interchangeable linear, grid, and staggered displays of views, all with configurable section headers including the sticky variety as specified in the material design docs.

Home Page:http://tonicartos.nz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

An update on version5

TonicArtos opened this issue · comments

I thought I'd give an update. I've been making great progress on version5 recently.

Layout and scrolling the section graph is working very well now. In implementing the header and footer layers I have been ironing out many of the finicky issues coming from the interaction between nested layouts. Keeping the layout state model correct and up to date has proven to be a pain. Testing has also been difficult. I gave up writing tests for the layouts as I have to completely model a huge section of the library just to test an individual layout call. It's not surprising as there is lot of abstraction and interaction by side-effect going on. The layouts are much easier to write though, which was the goal of all this. Probably you can isolate individual parts of the layout code for a given Slm and write unit tests for those.

I am very happy with where I have gotten the library to. Take a look at it on the version5 branch. The example app should be very easy to follow on how things are working.

Todo - Milestone 2

  • Padding
  • Sticky headers
  • Persist state over configuration change (device rotation)
  • Smooth scroll to position
    The completion of these items will culminate in moving everything over to master, updating the wiki and the readme.

After that - Milestone 3

  • Grid layout
  • Gutter headers
  • Gutter footers
  • Additional documentation
  • A proper example app demoing features

Done

  • Data changes and predictive animations.
  • Layout infrastructure (helpers, state, and all the things)
  • Scrolling infrastructure (involves a fill pass and then a trim pass)
  • Linear layout
  • Inline headers
  • Sticky footers
  • Inline footers
  • Collapsible sections
  • Adapter (but it probably could be better, and presently requires your graph structure to be loaded into memory)
  • Selectable scroll direction (horizontal and vertical)
  • Native language direction support
  • Support for RecyclerView configuration (programmatic and XML) options; stackFromEnd and reverseLayout.
  • Scroll to position

Current known bugs

  • Collapsible sections triggers a bug somewhere losing one item in the adapter after each cycle (footer related).
  • Sticky footers spanning the scrollable area wiggle strangely on scroll.