ConstraintSet.clear заставляет исчезнуть целевое представление - PullRequest
0 голосов
/ 23 января 2019

То, что я сейчас пытаюсь сделать, - это изменить ограничения для вида, если он касается края экрана, то есть ограничить его слева от родительского вида и нижней части предыдущего ряда видов. Когда я пытаюсь это сделать, первое представление в строке исчезает, однако остальные представления, ограниченные исчезнувшим представлением, выглядят так, как ожидалось. Кто-нибудь сталкивался с этой проблемой раньше? Как я мог это исправить?

Если я уберу ограничение 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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...