All Projects → fabiosassu → Stackexpandableview

fabiosassu / Stackexpandableview

Licence: mit
A custom view that resembles the iOS notification group behavior

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Stackexpandableview

Stacklayoutmanager
customized layoutmanager,let item pile up like stackview/类似最美有物卡片堆叠效果
Stars: ✭ 343 (+206.25%)
Mutual labels:  stack, widget
Libforth
libforth: A small Forth interpreter that can be used as a library written in c99
Stars: ✭ 107 (-4.46%)
Mutual labels:  stack
Slidingdrawer
SlidingDrawer hides content out of the screen and allows the user to drag a handle to bring the content on screen.
Stars: ✭ 94 (-16.07%)
Mutual labels:  widget
Net widgets
Network widgets for Awesome WM
Stars: ✭ 103 (-8.04%)
Mutual labels:  widget
React Autocomplete Input
Autocomplete input field for React
Stars: ✭ 100 (-10.71%)
Mutual labels:  widget
Bubble Navigation
🎉 [Android Library] A light-weight library to easily make beautiful Navigation Bar with ton of 🎨 customization option.
Stars: ✭ 1,537 (+1272.32%)
Mutual labels:  widget
Animatedpieview
// 一个好吃的甜甜圈?
Stars: ✭ 1,319 (+1077.68%)
Mutual labels:  widget
Flutter crop
Crop any widget/image in Android, iOS, Web and Desktop with fancy and customizable UI, in pure Dart code.
Stars: ✭ 107 (-4.46%)
Mutual labels:  widget
Nativescript Drop Down
A NativeScript DropDown widget.
Stars: ✭ 107 (-4.46%)
Mutual labels:  widget
Tkdotsegment
TKDotSegment is a segment with dot animation
Stars: ✭ 103 (-8.04%)
Mutual labels:  widget
Socialcount
Unmaintained (see the README): Simple barebones project to show share counts from various social networks.
Stars: ✭ 1,382 (+1133.93%)
Mutual labels:  widget
Material Bottomnavigation
Bottom Navigation widget component inspired by the Google Material Design Guidelines at https://www.google.com/design/spec/components/bottom-navigation.html
Stars: ✭ 1,375 (+1127.68%)
Mutual labels:  widget
Buckets Swift
Swift Collection Data Structures Library
Stars: ✭ 106 (-5.36%)
Mutual labels:  stack
Evntouchiddemo
🆔 iOS fingerprint login process implementation
Stars: ✭ 98 (-12.5%)
Mutual labels:  widget
Gods
GoDS (Go Data Structures). Containers (Sets, Lists, Stacks, Maps, Trees), Sets (HashSet, TreeSet, LinkedHashSet), Lists (ArrayList, SinglyLinkedList, DoublyLinkedList), Stacks (LinkedListStack, ArrayStack), Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap, LinkedHashMap), Trees (RedBlackTree, AVLTree, BTree, BinaryHeap), Comparators, Iterators, …
Stars: ✭ 10,883 (+9616.96%)
Mutual labels:  stack
Stack2nix
Generate nix expressions for Haskell projects
Stars: ✭ 93 (-16.96%)
Mutual labels:  stack
Calendar view
an android widget to show calendar
Stars: ✭ 102 (-8.93%)
Mutual labels:  widget
Haskell Language Server
Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.
Stars: ✭ 1,857 (+1558.04%)
Mutual labels:  stack
Flutter Status Alert
Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow.
Stars: ✭ 111 (-0.89%)
Mutual labels:  widget
Responsible Ai Widgets
This project provides responsible AI user interfaces for Fairlearn, interpret-community, and Error Analysis, as well as foundational building blocks that they rely on.
Stars: ✭ 107 (-4.46%)
Mutual labels:  widget

StackExpandableView

A custom view that resembles the iOS notification group behavior

device-2021-03-07-190110

Requirements

  • A project configured with the AndroidX
  • SDK 16 and and higher

Install

Download via Gradle:

Add this to the project build.gradle file:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

And then add the dependency to the module build.gradle file:

dependencies {
        implementation 'com.github.fabiosassu:StackExpandableView:latest_version'
}

Where the latest_version is the value from Download badge.

Usage

Simple usage

All you need to do is to define a StackExpandableView item inside your layout:

 <it.fabiosassu.stackexpandableview.StackExpandableView
            android:id="@+id/horizontalStack"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:orientation="horizontal"
            app:animationDuration="1000"
            app:shownElements="5"
            app:parallaxOffset="8dp"/>

You can customize some aspects of this view:

  • the orientation parameter is be used to specify the direction of the expansion It can be either vertical or horizontal. By default is vertical.
  • the animationDuration parameter is used to define the duration of the animation in milliseconds. By default, is 300 milliseconds.
  • the shownElements parameter is used to define how many elements we want to be shown. By default, is 3 elements.
  • the parallaxOffset parameter is used to define the spacing between the underlying objects in dp. By default, is 8dp.

At runtime, you can set/add/remove a list of Views using the related methods

// this is used to set the list of Views
binding.horizontalStack.setWidgets(listOf<LinearLayout>())
// this is used to add a View to the existing one
binding.verticalStack.addWidget(LinearLayout(context))
// this is used to remove a View from the stack
binding.verticalStack.removeWidget(LinearLayout(context))

It is important that all the views that are added to the StackExpandableView have an id set (fo example using ViewCompat.generateViewId()), because it is used to order the views internally and also to look for the view when removeWidget() is called.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].