Skip to content
Simple and easy way to deal with CoordinatorLayout Behavior
Branch: master
Clone or download
Latest commit 3234724 Jan 16, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea update gradle and support lib versions Jan 4, 2018
app prefix attribution name with behavior_ Jan 6, 2018
gradle/wrapper
library add view interface for progress callback Jan 14, 2018
screenshot init commit Jan 2, 2016
.gitignore
.travis.yml add work around for travis-ci with android-27 Jan 16, 2018
LICENSE init commit Jan 2, 2016
README.md setup travis Jan 6, 2018
build.gradle update gradle and support lib versions Jan 4, 2018
gradle.properties init commit Jan 2, 2016
gradlew init commit Jan 2, 2016
gradlew.bat init commit Jan 2, 2016
settings.gradle init commit Jan 2, 2016

README.md

Build Status

simple-view-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

Installation

compile 'com.zoonref:simple-view-behavior:1.0'

Usage

You can setup behavior effect by using only xml option.

  1. set the layout behavior to this library class app:layout_behavior="com.zoonref.SimpleViewBehavior"
  2. set the dependency view by specify resource id by app:dependsOn="@+id/{your view id}"
  3. set the type of dependency app:dependType="{x,y,width,height}"
  4. set the dependency view target value according to the type you choose app:dependTargetXXX="{value}"
  5. set the target appearance that you want your view to animate to

There are two ways to specify the animation when the dependency view changed.

1. xml

<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

2. view animation resource file

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

Options

You can see all available option at attrs.xml

Author

Amornchai Kanokpullwad, @zoonref

License

simple-view-behavior is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.