Garland View seamlessly transitions between multiple lists of content. Made by @Ramotion (Alex Mikhnev)
The ramotion website: https://dev.ramotion.com TURNING FANCY DESIGN INTO PROGRAM CODE
Ramotion provides programming of advanced UI for websites and mobile apps
Requirements of garland-view
- iOS 10.0
- Xcode 9
- Swift 4.0
How to install garland-view on iOS?
You can install
garland-view in several ways:
- Add source files to your project.
- Use CocoaPods:
- Use Carthage:
Usage of Garland View
Garland view can be used directly or by subclassing
GarlandViewController. In both variants you need to implement
let nib = UINib(nibName: "CollectionCell", bundle: nil) garlandCollection.register(nib, forCellWithReuseIdentifier: "Cell") garlandCollection.delegate = self garlandCollection.dataSource = self
Control can be user with or without header view.
setupHeader(:UIView) to customize collection header. Use
GarlandConfig to make your custom configuration.
Take a look at the
Example project for an integration example.
Check Garland View for Android:
Requirements of garland-view
- Android 4.4 KitKat (API lvl 19) or greater
- Your favorite IDE
How to install garland-view on Android?
Just download the package from here and add it to your project classpath, or just use the maven repo:
libraryDependencies += "com.ramotion.garlandview" % "garland-view" % "0.3.2"
<dependency> <groupId>com.ramotion.garlandview</groupId> <artifactId>garland-view</artifactId> <version>0.3.2</version> </dependency>
GarlandView consists of classes for inner items that are scrolled vertically and outer items that are scrolled horizontally, and each of which contains one inner item.
First of all, you need to implement the classes necessary to create internal items: InnerItem and InnerAdapter.
InnerAdapter is an abstract class inherited from RecyclerView.Adapter. It works only with InnerItem – ViewHolder.
InnerItem, you need to override the
getInnerLayout method, which must return the main layout of the inner item.
Next, you need to override the classes required for external items:
HeaderAdapter is an abstract class inherited from RecyclerView.Adapter, It works only with HeaderItem – ViewHolder.
HeaderItem, you need to redefine 4 methods:
getViewGroup. The method
getViewGroup should return InnerRecyclerView. The
isScrolling method must return the InnerRecyclerView’s scrolling state. The
getHeaderAlpha method should return an alpha-layout, which will be used for dimming (hiding header’s views). The
getHeader method must return the main layout of the header, an outer item.
TailRecyclerView in the Activity’s layout. Next, create a TailLayoutManager and specify it as a LayoutManager for
Here are the attributes of
TailRecyclerView you can specify in the XML layout:
itemStart– Outer item left and right offset size.
itemGap– Distance between outer items.
Garland view is released under the MIT license.
Project website: https://github.com/Ramotion/garland-view