2017-11-02 6 views
3

Ich habe eine TextView in einem Constraint-Layout. Ich versuche so zu animieren, dass der Blick von oben auf den Bildschirm fällt. Das ist, was ich bisher getan habe,Animierte Ansicht aus Bildschirm in Android Constraint Layout

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); 

Nun dieser Code nur verschiebt den Inhalt an die Spitze der Ansicht, es ist nicht aus dem Blick zu gehen und verschwand zu werden.

Wie kann ich dies mit Constraint-Layout tun?

+0

zuerst machen Sicht aus dem Bildschirm als entfernen/deococate es. – Mikhail

+0

Verwenden Sie kollabierendes Layout, um zu bekommen, was Sie wollen –

+0

@Mikhail wie es geht? –

Antwort

3

Statt die untere Beschränkung der TextView das Löschens, versuchen, seine Unterseite auf die Oberseite der ConstraintLayout wie dieser Zwang:

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

Nun, wenn die Ansicht animiert wird, sollte die obere Kante abrutschen.

Negative Ränder werden nicht unterstützt mit ConstraintLayout wie notiert here.

Verwandte Themen