JuniperPhoton
FlipperLayout
Kotlin

Android version of FlipperControl for UWP (https://github.com/JuniperPhoton/FlipperControl)

Last updated May 7, 2025
95
Stars
22
Forks
0
Issues
0
Stars/day
Attention Score
25
Language breakdown
Kotlin 100.0%
โ–ธ Files click to expand
README

FlipperView

Android version of FlipperControl for UWP . Now it's written in Kotlin.

A control that uses flip transition to change different states. Works on API 19, but with more tests I think it works well on API 16.

How to use

FlipperView extends from FrameLayout so you can use it as a FrameLayout but it only displays one child at a time and you can call next() to switch to another child. Please don't put views that do heavy work.

width="wrapcontent" android:layoutheight="wrapcontent" android:layout_centerInParent="true" android:clickable="true" android:clipChildren="false" android:clipToPadding="false" android:foreground="?android:attr/selectableItemBackground" android:padding="20dp" app:defaultIndex="0" app:flipAxis="X">

It has a sample proj to demonstrate how to use it.

There are a few attrs that control the behavior:

defaultIndex:int

Default display index of view. Note that the value of zero points to the first view you declare in XML.

flipDirection:int

FlipDirection.

XML : backToFront or frontToBack

CODE: FLIPDIRECTIONBACKTOFRONT or FLIPDIRECTIONFRONTTOBACK

flipAxis:int

XML : X or Y

CODE: AXISX or AXISY

duration:int

Animation duration in millis. The default value is 200 which I think it's fast enough.

tapToFlip:boolean

Enable tap to flip or not. Default value is false.

Switch views

Current there are 4 ways to switch views:

fun next()

Segue to next view. If it's the end of the views, then segue to the first one.

fun previous()

Segue to the previous view. If it's the head of the views, then segue to the last one.

fun next(Int, Boolean, ViewAction, ViewAction?)

Segue to the specified one with/without animation, and custom the action that will be applied on the current display view on Exit animation end and run the action after the Enter animation.

To understand the running time on both actions, please refer to the advance topic.

Note that both ViewAction has default value for Kotlin.

Please be aware of IndexOutOfBoundsException.

fun refreshCurrent(ViewAction)

Perform the flip animation and run the custom action on exit animation end.

Advance

The flipping animation contains two parts:

  • Exit animation: the current display view rotates from 0 to 90 degrees
  • Enter animation: the next display view rotates from -90 to 0 degrees
At the end of both animations, you can perform your actions. See fun next(Int, Boolean, ViewAction, ViewAction?) method for details.

Note for Android P user

Since the elevation shadow in Android P is NOT control by animation transformation, thus it will cause some weird issues on Android P devices.

Thus the FlipperLayout will disable elevation during animation and apply it back for you at the end of animation.

ยฉ 2026 GitRepoTrend ยท JuniperPhoton/FlipperLayout ยท Updated daily from GitHub