/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.

Primary LanguageJavaApache License 2.0Apache-2.0

SuperSLiM

Current release branchGitHub Release VersionMaven Central Version

SuperSLiM is a configurable layout manager for a RecyclerView. It provides a vertical scrolling list of sections. Each section is a grouping of one or more views, arranged by a section layout manager (SLM). Sections may have a header, and each header can have its own unique layout. The SLM can be one of the provided (listed below), or of your own creation.

SuperSLiM also has a maintained wiki with guides and documentation to help you out.

Feature Overview

Section Headers

  • Sticky headers
  • Material design style headers
  • Header overlays

Section Layout Managers (SLM)

  • Linear (like ListView)
  • Grid (like GridView)
  • Staggered Grid - not yet implemented
  • or create your own

Misc

  • Support for RTL languages
  • Smooth scroll indicator

See the Roadmap for more details and future development.

How do I get it?

Add the following to your build.gradle file.

dependencies {
    compile 'com.tonicartos:superslim:0.4.8'
}

How do I use it?

Read the Getting Started wiki page for easy to follow instructions.

SuperSLiM is documented in the wiki so you can easily get stuck in.

Support

Samples

Included in the repository.

Example App

Acknowledgements

Android Arsenal for its indexing of third party libraries.
Android Arsenal

Thanks to Dave Smith for his introduction to writing a RecyclerView LayoutManager over at Wires are Obsolete, and to Lucas Rocha for his TwoWayView Library which is worth checking out too.

License

Copyright (C) 2014, 2015 Tonic Artos

SuperSLiM is largely original with some pieces from from Lucas Rocha's TwoWayView Library and the AOSP.

Copyright (C) 2014 Lucas Rocha

Copyright (C) 2014 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.