• Stars
    star
    810
  • Rank 56,306 (Top 2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 10 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An Android library introducing a stack of Views with the first item being flippable.

FlippableStackView

License Android Arsenal Maven Central

An Android library introducing a stack of Views with the first item being flippable.

Views inside the stack remain the aspect ratio of the FlippableStackView.

Library in action

Usage

For a working implementation of this library see the sample/ folder.

  1. Include the view inside your layout xml

    <com.bartoszlipinski.flippablestackview.FlippableStackView
      android:id="@+id/stack"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
  2. FlippableStackView is based on the specific PageTransformer used with the ViewPager. Therefore to fill the View you can use just a typical implementation of a PagerAdapter. In your onCreate method (or onCreateView for a fragment), setup all the parameters of the FlippableStackView.

    FlippableStackView stack = (FlippableStackView) findViewById(R.id.stack);
    stack.initStack(2);
    stack.setAdapter(mStackAdapter); //assuming mStackAdapter contains your initialized adapter

Important Note: The current implementation of the library will display the elements from the Adapter in the reverse order. In other words: view at position 0 of your adapter will be displayed at the bottom of the stack and view at position adapter.getCount()-1 will be visible first (available for the first flip).

Customization

The FlippableStackView is highly customizable to provide you with just the visual effect you really wanted.

There are three methods that allows for initialization of the stack:

  1. First one sets up the stack in the default way (scale-wise and orientation-wise):

    public void initStack(int numberOfStacked)
  2. The second one sets up the stack in the default way (scale-wise) but let's you choose the orientation of it:

    public void initStack(int numberOfStacked, StackPageTransformer.Orientation orientation)
  3. And the last one... a bit more advanced (lets you customize all the scale-related, orientation-related and alignment-related parameters):

    public void initStack(int numberOfStacked,
                          StackPageTransformer.Orientation orientation,
                          float currentPageScale,
                          float topStackedScale,
                          float overlapFactor,
                          StackPageTransformer.Gravity gravity)

Be sure to read about all the parameters in Javadoc before using the last one.

Including In Your Project

You can grab the library via Maven Central. Just add a proper dependency inside your build.gradle. Like this:

dependencies {
    compile 'com.bartoszlipinski.flippablestackview:library:1.2.1'
}

Developed by

  • Bartosz Lipiński

Credits

Maven Central deployment was performed using an awesome Gradle script by Chris Banes. This made things so much easier.

License

Copyright 2015 Bartosz Lipiński

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.

More Repositories

1

RecyclerViewHeader

[DEPRECATED] Super fast and easy way to create header for Android RecyclerView
Java
1,300
star
2

ViewPropertyObjectAnimator

Wrapper of the ObjectAnimator that can be used similarly to ViewPropertyAnimator
Java
339
star
3

cortado

Android Espresso made more fluent ☕
Java
331
star
4

StaggeredAnimationGroup

A ConstraintLayout group that allows for simple staggered animations.
Java
89
star
5

RxAnimationBinding

RxJava binding APIs for Android's animations
Java
82
star
6

dagger2-ktx

Kotlin extension bridge library for Dagger2 (proof-of-concept)
Java
40
star
7

XmlTag

[DEPRECATED] The easiest way to simplify custom View tags in Android layout xmls.
Java
35
star
8

disable-animations-rule

JUnit TestRule for Android instrumented tests, which automatically disables and enables animations
Java
32
star
9

cold-reboot

🤖 Rebooting Android Emulators with Cold Boot
Python
30
star
10

Android-ParseModel

[DEPRECATED] Annotation-based library that allows for easy data model creation for Parse Android SDK
Java
23
star
11

awesome-auto-value-extensions

:shipit: A curated list of awesome AutoValue extensions
23
star
12

trigger

[DEPRECATED] Simple command pattern helper class
Java
20
star
13

butterknife-ktx

Kotlin extension bridge library for Butterknife (proof-of-concept)
Java
20
star
14

app-startup-hilt-sample

App Startup 🚀 + Hilt 🗡 (a sample project that combines both to provide dependencies to Initializers)
Kotlin
18
star
15

IntDefs

Android constants wrapped in @IntDef annotations
Java
17
star
16

data-class-builder

🏗 Automatically generating builders 👷‍♂️for Kotlin data classes
Kotlin
16
star
17

GroupOfX

[DEPRECATED] When Android's Pair class is just not enough.
Java
15
star
18

PositioningDrawables-Examples

Simplifying layouts with layer-list drawables: a reliable way to position drawables within layer-lists
Java
13
star
19

StreetViewProbe

A simple (although a bit hacky) way to check if StreetView is available for a specific location.
Java
12
star
20

til

A collection of `Today I Learned` snippets
5
star
21

ExoPlayer1

[DEPRECATED] An external packaging of Google's ExoPlayer versions 1.x.x
4
star
22

test-case-factory

A multi-type combinations builder, designed specifically for creating test cases for parameterized testing.
Kotlin
2
star
23

issue-compose-painterResource

the minimal example showing an issue with `painterResource` in jetpack compose
Kotlin
2
star
24

generating-kotlin-extension-functions

Code examples from my 2018/2019 tech talk on "Generating Kotlin extension functions for Annotation Processing"
Kotlin
1
star
25

git-split-commit

↔ A bash script which splits a git commit into multiple commits, one for each modified file.
Shell
1
star
26

parse-lint-baseline

A simple shell script which parses the lint-baseline.xml file, counts the instances of every type of violation and produces a csv file with results
Shell
1
star