С помощью ConstraintSet вы можете программно создавать привязки, цепочки, барьеры и настраивать их.
Click here to read this article!
Урок 183. ConstraintSet. Программная настройка ConstraintLayout
Урок 183. ConstraintSet. Программная настройка ConstraintLayout
Последний раз редактировалось damager82 30 июл 2017, 01:18, всего редактировалось 8 раз.
Re: Урок 183. ConstraintSet. Программная настройка Constrain
А у меня почему-то ведёт себя маленько не так, как задумано:
http://g.recordit.co/OTTdl23aHn.gif
http://g.recordit.co/OTTdl23aHn.gif
Код: Выделить всё
import android.os.Bundle;
import android.support.constraint.ConstraintLayout;
import android.support.constraint.ConstraintSet;
import android.support.transition.TransitionManager;
import android.support.v7.app.AppCompatActivity;
import butterknife.BindDimen;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.container)
ConstraintLayout constraintLayout;
@BindDimen(R.dimen.some_margin)
int someMargin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@OnClick(R.id.button)
void onButtonClick() {
ConstraintSet set = new ConstraintSet();
// copy constraints settings from current ConstraintLayout to set
set.clone(constraintLayout);
// change constraints settings
changeConstraints(set);
// enable animation
TransitionManager.beginDelayedTransition(constraintLayout);
// apply constraints settings from set to current ConstraintLayout
set.applyTo(constraintLayout);
}
private void changeConstraints(ConstraintSet set) {
set.clear(R.id.textView3, ConstraintSet.LEFT);
set.clear(R.id.textView3, ConstraintSet.TOP);
set.connect(R.id.textView3, ConstraintSet.LEFT, R.id.textView2, ConstraintSet.LEFT);
set.connect(R.id.textView3, ConstraintSet.BOTTOM, R.id.textView2, ConstraintSet.TOP, someMargin);
}
}