Ramotion/garland-view-android

:octocat: ≡ GarlandView seamlessly transitions between multiple lists of content. Made by @Ramotion

Java

1,817

129 commits

updated Apr 6, 2020

See the code

README

GARLAND VIEW [JAVA]

Garland View seamlessly transitions between multiple lists of content


We specialize in the designing and coding of custom UI for Mobile Apps and Websites.

Stay tuned for the latest updates:


Twitter Donate

Check this library on other platforms:

Requirements

  • Android 4.4 KitKat (API lvl 19) or greater
  • Your favorite IDE

Installation

Just download the package from here and add it to your project classpath, or just use the maven repo:

Gradle:

compile 'com.ramotion.garlandview:garland-view:0.3.3'

SBT:

libraryDependencies += "com.ramotion.garlandview" % "garland-view" % "0.3.3"

Maven:

<dependency>
    <groupId>com.ramotion.garlandview</groupId>
    <artifactId>garland-view</artifactId>
    <version>0.3.3</version>
</dependency>

Basic usage

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.

In 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: HeaderItem and HeaderAdapter.

HeaderAdapter is an abstract class inherited from RecyclerView.Adapter, It works only with HeaderItem - ViewHolder.

In HeaderItem, you need to redefine 4 methods: getHeader, getHeaderAlphaView, isScrolling, 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.

Finally, place TailRecyclerView in the Activity's layout. Next, create a TailLayoutManager and specify it as a LayoutManager for TailRecyclerView.

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.

🗂 Check this library on other language:

📄 License

Garland View Android is released under the MIT license. See LICENSE for details.

This library is a part of a selection of our best UI open-source projects

If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com

📱 Get the Showroom App for Android to give it a try

Try this UI component and more like this in our Android app. Contact us if interested.

android
animation
component
java
library
material-design
ui

Ramotion/garland-view-android

:octocat: ≡ GarlandView seamlessly transitions between multiple lists of content. Made by @Ramotion

Java

1,817

129 commits

updated Apr 6, 2020

See the code

README

GARLAND VIEW [JAVA]

Garland View seamlessly transitions between multiple lists of content


We specialize in the designing and coding of custom UI for Mobile Apps and Websites.

Stay tuned for the latest updates:


Twitter Donate

Check this library on other platforms:

Requirements

  • Android 4.4 KitKat (API lvl 19) or greater
  • Your favorite IDE

Installation

Just download the package from here and add it to your project classpath, or just use the maven repo:

Gradle:

compile 'com.ramotion.garlandview:garland-view:0.3.3'

SBT:

libraryDependencies += "com.ramotion.garlandview" % "garland-view" % "0.3.3"

Maven:

<dependency>
    <groupId>com.ramotion.garlandview</groupId>
    <artifactId>garland-view</artifactId>
    <version>0.3.3</version>
</dependency>

Basic usage

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.

In 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: HeaderItem and HeaderAdapter.

HeaderAdapter is an abstract class inherited from RecyclerView.Adapter, It works only with HeaderItem - ViewHolder.

In HeaderItem, you need to redefine 4 methods: getHeader, getHeaderAlphaView, isScrolling, 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.

Finally, place TailRecyclerView in the Activity's layout. Next, create a TailLayoutManager and specify it as a LayoutManager for TailRecyclerView.

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.

🗂 Check this library on other language:

📄 License

Garland View Android is released under the MIT license. See LICENSE for details.

This library is a part of a selection of our best UI open-source projects

If you use the open-source library in your project, please make sure to credit and backlink to www.ramotion.com

📱 Get the Showroom App for Android to give it a try

Try this UI component and more like this in our Android app. Contact us if interested.

android
animation
component
java
library
material-design
ui

Project health

Overall

1.9/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

Latest release

0.3.3 · Feb 8, 2019

Releases this year

0

Significant stargazers

Sebastian Roth

156 followers · starred Oct 2017

Andy Scherzinger

261 followers · starred Oct 2017

Yuki Nishijima

559 followers · starred Nov 2017

Howard Edwards

19 followers · starred Sep 2017