ConstraintSet with ContraintLayout Programmatically
importandroid.content.Context;importandroid.os.Bundle;importandroid.support.constraint.ConstraintLayout;importandroid.support.constraint.ConstraintSet;importandroid.support.transition.TransitionManager;importandroid.support.v7.app.AppCompatActivity;importandroid.view.View;publicclassMainActivityextendsAppCompatActivity{ConstraintSet mConstraintSet1 =newConstraintSet();// create a Constraint SetConstraintSet mConstraintSet2 =newConstraintSet();// create a Constraint SetConstraintLayout mConstraintLayout;// cache the ConstraintLayoutboolean mOld =true;@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Context context =this;
mConstraintSet2.clone(context,R.layout.state2);// get constraints from layoutsetContentView(R.layout.state1);
mConstraintLayout =(ConstraintLayout)findViewById(R.id.activity_main);
mConstraintSet1.clone(mConstraintLayout);// get constraints from ConstraintSet}publicvoidfoo(View view){TransitionManager.beginDelayedTransition(mConstraintLayout);if(mOld =!mOld){
mConstraintSet1.applyTo(mConstraintLayout);// set new constraints}else{
mConstraintSet2.applyTo(mConstraintLayout);// set new constraints}}}