FlipLayout
Use the FlipLayout as a ViewGroup to easily swap between child views.
Include in your project
In your root/build.gradle
allprojects {
repositories {
... maven {
url 'https://jitpack.io'
}
}
}
In your app/build.gradle
dependencies {
compile 'com.github.cmfsotelo:fliplayout:latest.version.here'
}
Usage
Simply use the FrameLayout public methods to change which view is visible./** * Shows the child next to the one being shown, animating it. If the current child is the last one, the first child shown. */ public void showNextChild();
/** * Shows the child previous to the one being shown, animating it. If the current child is the first one, the last child shown. */ public void showPreviousChild() ; /** * Sets the target child as the visible one. Can be animated or not. When animated, it animates from the current visible child immediately to the target one. * * @param targetChild - the target child * @param animate
- flag to make the transition animating it or not */ public void showChild(int targetChild, boolean animate)
Examples (click image to expand code)
Use to simply flip one view with another
<com.csot.fliplayout.lib.FlipLayout android:id="@+id/fliplayout2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:transition="FLIP_X">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@drawable/circle"
android:backgroundTint="#4286f4"
android:gravity="center"
android:padding="20dp"
android:text="G"
android:textColor="#fff"
android:textSize="40dp"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@drawable/circle"
android:backgroundTint="#555"
android:gravity="center"
android:padding="20dp"
android:src="@drawable/ic_done_black_48dp"
android:textStyle="bold"
android:tint="#fff"/> </com.csot.fliplayout.lib.FlipLayout>
OR
Use to swap over several views
<com.csot.fliplayout.lib.FlipLayout android:id="@+id/fliplayout4" android:layout_width="wrap_content" android:layout_height="wrap_content" app:transition="TRANSLATE_Y">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="10dp"
android:background="#4286f4"
android:gravity="center"
android:padding="20dp"
android:text="FirstView"
android:textColor="#fff"
android:textSize="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="10dp"
android:background="#6016f4"
android:gravity="center"
android:padding="20dp"
android:text="SecondView"
android:textColor="#fff"
android:textSize="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="10dp"
android:background="#f18614"
android:gravity="center"
android:padding="50dp"
android:text="ThirdView"
android:textColor="#fff"
android:textSize="50dp"/> </com.csot.fliplayout.lib.FlipLayout>
Customization
Attribute | Type | Description | Default |
---|---|---|---|
startingChild | int | First visible child | 0 |
transitionDuration | int | The ending angle for button disposition | 200 |
transition | enum | The type of the transition, one of: FADE, FLIP_X, FLIP_Y, TRANSLATE_X, TRANSLATE_Y, FLIP_Z1, FLIP_Z2 | FLIP_Y |