Easy Coder
Easy Coder

Reputation: 325

Animate view off Screen in android Constraint Layout

I have a TextView inside a Constraint Layout. I am trying to animate in a way that the view goes off the screen from top. This is what I did so far,

ConstraintSet constraintSet = new ConstraintSet();
ConstraintLayout layout = (ConstraintLayout)holder.mView;
constraintSet.clone(layout);

constraintSet.clear(R.id.txt_PackageTitle,ConstraintSet.TOP);
constraintSet.clear(R.id.txt_PackageDescription,ConstraintSet.TOP);  
constraintSet.clear(R.id.txt_PackageTitle,ConstraintSet.BOTTOM); 
constraintSet.clear(R.id.txt_PackageDescription,ConstraintSet.BOTTOM);

constraintSet.setMargin(R.id.txt_PackageTitle,ConstraintSet.TOP,-600); 
constraintSet.setMargin(R.id.txt_PackageDescription,ConstraintSet.TOP,-1200);

ChangeBounds transition = new ChangeBounds();
transition.setInterpolator(new BounceInterpolator());
transition.setDuration(600);                
TransitionManager.beginDelayedTransition(layout,transition);
                    constraintSet.applyTo(layout);

Now this code only moves the contents to the very top of the view, its not going out of the view and getting disappeared.

How can I do this with constraint layout?

Upvotes: 5

Views: 4341

Answers (1)

Cheticamp
Cheticamp

Reputation: 62831

Instead of clearing the bottom constraint of the TextView, try constraining its bottom to the top of the ConstraintLayout like this:

constraintSet.connect (R.id.txt_PackageTitle, 
            ConstraintSet.BOTTOM, 
            PARENT_ID, 
            ConstraintSet.TOP);

Now when the view is animated, it should slide off the top edge.

Negative margins are not supported with ConstraintLayout as is noted here.

Upvotes: 9

Related Questions