Simple and easy way to deal with CoordinatorLayout Behavior
Simple View Behavior for Android CoordinatorLayout.
This library provide you easy ways to config and setup the view behavior without creating subclass of Behavior
compile 'com.zoonref:simple-view-behavior:1.0'
You can setup behavior effect by using only xml option.
app:layout_behavior="com.zoonref.SimpleViewBehavior"
app:dependsOn="@+id/{your view id}"
app:dependType="{x,y,width,height}"
app:dependTargetXXX="{value}"
There are two ways to specify the animation when the dependency view changed.
<View
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="8dp"
android:layout_marginLeft="20dp"
android:rotationX="90"
android:elevation="10dp"
android:background="@android:color/holo_blue_bright"
android:alpha="0"
app:layout_behavior="com.zoonref.SimpleViewBehavior"
app:dependsOn="@+id/app_bar"
app:dependType="y"
app:dependTargetY="-156dp"
app:targetAlpha="1"
app:targetRotateX="0"/>
This View will depend on the y
positon of @+id/app_bar
which is AppBarLayout. View will animation from current state of AppBarLayout until
y position of AppBarLayout is -156dp
with the animation, View will animate alpha to app:targetAlpha="1"
rotate x to app:targetRotateX="0"
Don't forget to add xmlns:app="http://schemas.android.com/apk/res-auto"
The output will be
When you use animation, all of animate target option from xml will be ignored.
for example
<View
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center|top"
android:layout_marginTop="80dp"
android:elevation="10dp"
android:background="@android:color/holo_orange_dark"
app:layout_behavior="com.zoonref.SimpleViewBehavior"
app:dependsOn="@+id/app_bar"
app:dependType="y"
app:dependTargetY="-156dp"
app:animation="@anim/rotate"/>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:duration="100"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="40dp"
android:toYScale="40dp"/>
<rotate
android:duration="100"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360"/>
<alpha
android:duration="100"
android:toAlpha="0"/>
</set>
The output will be
You can see all available option at attrs.xml
Amornchai Kanokpullwad, @zoonref
simple-view-behavior is available under the MIT license. See the LICENSE file for more info.