То, что я сейчас пытаюсь сделать, - это изменить ограничения для вида, если он касается края экрана, то есть ограничить его слева от родительского вида и нижней части предыдущего ряда видов. Когда я пытаюсь это сделать, первое представление в строке исчезает, однако остальные представления, ограниченные исчезнувшим представлением, выглядят так, как ожидалось. Кто-нибудь сталкивался с этой проблемой раньше? Как я мог это исправить?
Если я уберу ограничение TOP из textView, оно исчезнет вместе со всеми последующими текстовыми представлениями. Если я не уберу ограничения перед их сбросом, появится первое в строке textView, однако все виды смещаются по лестнице экрана, пока в конечном итоге все виды не будут созданы за пределами экрана. Они делают это, потому что первое представление по умолчанию ограничено нижней частью последнего представления в предыдущей строке.
//this code is executed when textViews[finalI] hits the edge of the screen
// constraintSet.clear(textViews[finalI].getId(),
ConstraintSet.LEFT);
// uncommenting the above line will result in desired rows with
first components missing
// constraintSet.clear(textViews[finalI].getId(),
ConstraintSet.TOP);
// uncommeting both results in textviews complete disappearing
constraintSet.connect(textViews[finalI].getId(),
ConstraintSet.TOP, textViews[mRowBeginningId].getId(),
ConstraintSet.BOTTOM);
constraintSet.connect(textViews[finalI].getId(),
ConstraintSet.RIGHT, mConstraintLayout.getId(),
ConstraintSet.LEFT);
constraintSet.applyTo(mConstraintLayout);
mRowBeginningId = finalI;
mCurrentLineLength=textViews[finalI].getMeasuredWidth();
//below is the code for the initial constraining process
if (i==0) { //first word gets constrained to top-left of constraintLayout
constraintSet = new ConstraintSet();
constraintSet.clone(mConstraintLayout);
//constraintSet.clear(textViews[i].getId());
constraintSet.connect(textViews[i].getId(), ConstraintSet.TOP,
mConstraintLayout.getId(), ConstraintSet.TOP);
constraintSet.connect(textViews[i].getId(), ConstraintSet.RIGHT,
mConstraintLayout.getId(), ConstraintSet.LEFT);
constraintSet.applyTo(mConstraintLayout);
} else { //other words get constrained to previous ones.
constraintSet = new ConstraintSet();
constraintSet.clone(mConstraintLayout);
constraintSet.connect(textViews[i].getId(), ConstraintSet.LEFT,
textViews[i - 1].getId(), ConstraintSet.RIGHT);
constraintSet.connect(textViews[i].getId(), ConstraintSet.TOP,
textViews[i - 1].getId(), ConstraintSet.TOP);
constraintSet.applyTo(mConstraintLayout);
}