Popularity
3.0
Growing
Activity
5.2
-
148
1
30

Description

Custom Layout Manager for Recycler View which lays out its child views in circular or elliptical fashion

Ipod Scroll Wheel functionality implemented

Programming language: Java

CircularLayoutManager alternatives and similar packages

Based on the "Recyclerview Widget" category

Do you think we are missing an alternative of CircularLayoutManager or a related project?

Add another 'Recyclerview Widget' Package

README

Circular Layout Manager

Overview

A library for Android which essentially contains a Custom Layout Manager for Recycler View which lays out its child views in circular or elliptical fashion.

An implementation of a scroll wheel is built which enables the user to scroll the list with a circular motion of the finger.

Circular Constraint Layout is provided to clip the layout containing recycler view into an ellipse or a circle.

[Animation](app/src/main/assets/clm.gif)

Project Details

Circular layout manager extends RecyclerView.LayoutManager directly. Scrolling, laying out child views, incorporating decorations and margins, scaling, centering are some of the things that are handled.

The latest version is written in Kotlin and uses AndroidX components.

Additional Features:

  • Circular Layout Manager:
    • Scaling and centering (Enable or disable)
    • Setting scaling factor
    • Item decorations
    • Scrolling and smooth scrolling to position
    • Saving of state, i.e., scroll position (Useful during configuration changes)
    • Accessibility support
  • Scroll Wheel:
    • Enabling continued scrolling even when finger goes outside touch area
    • Highlight touch area
    • Touch area's inner radius adjustment
    • Touch area color selection
  • Circular Constraint Layout:
    • Setting primary dimension which enables auto adjustment of one of the dimensions (width or height) of the layout depending on the length of the other

Integeration

Use the following dependency snippet in your app level build.gradle file to include this library in your project:

dependencies {
    ...
    ...
    implementation 'com.github.kapil93:circular-layout-manager:2.0.0'
}

Versions

  • 2.0.0 (Kotlin & AndroidX)
  • 1.0.0