The ExpandableConstraintLayout presents itself as a wrapper around Google's ConstraintLayout with the small feature of toggling (expansion/collapse). This class was implemented based on @cmfsotelo's idea of ExpandableLinearLayout
Include it in your project- In your root/build.gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- In your app/build.gradle
dependencies {
compile 'com.github.rjsvieira:rjsvieira:expandableConstraintLayout:1.0.0'
}
Initialize your ExpandaConstraintLayout just like any other ConstraintLayout
ExpandableConstraintLayout ecl = (ExpandableConstraintLayout) findViewById(R.id.ecl);
void setInterpolator(TimeInterpolator interpolator)
void setAnimationDuration(int animationDuration)
void toggle()
void expand()
void collapse()
The ExpandableConstraintLayout allows the implementation of a listener :
setAnimationListener(@NonNull ExpandableConstraintLayoutListener listener)
This listener will track the following events :
/**
* Notifies the start of the animation.
* Sync from android.animation.Animator.AnimatorListener.onAnimationStart(Animator animation)
*/
void onAnimationStart(ExpandableConstraintLayoutStatus status);
/**
* Notifies the end of the animation.
* Sync from android.animation.Animator.AnimatorListener.onAnimationEnd(Animator animation)
*/
void onAnimationEnd(ExpandableConstraintLayoutStatus status);
/**
* Notifies the layout is going to open.
*/
void onPreOpen();
/**
* Notifies the layout is going to equal close size.
*/
void onPreClose();
/**
* Notifies the layout opened.
*/
void onOpened();
/**
* Notifies the layout size equal closed size.
*/
void onClosed();