Как программно добавить текстовые представления в макет ограничения, соединить те, которые начинаются с конца другого, не оставляя пробела между ними?

Я пытался программно добавить textViews к моему макету ограничения, однако даже когда я установил горизонтальное смещение равным 0, textViews имеют огромные промежутки между собой. Когда я добавляю, установите горизонтальное смещение равным 0 в файлах xml, однако этого разрыва нет. Как выглядит макет при добавлении дополнительных текстовых представлений

Я пытаюсь сделать так: как выглядит макет, когда textViews добавляются через XML

Мой код следующий для добавления textView:

    TextView tx = new TextView(this);
    tx.setText(eventName);
    tx.setTextSize(15);
    tx.setId(View.generateViewId());
    eventsAdded.add(tx.getId());
    tx.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
    tx.setTextColor(getResources().getColor(R.color.white));
    tx.setShadowLayer(1,1,1,getResources().getColor(R.color.black));
    constraintLayout.addView(tx);

    ConstraintSet constraintSet = new ConstraintSet();
    constraintSet.connect(tx.getId(),ConstraintSet.TOP,topOf.getId(),ConstraintSet.BOTTOM);
    constraintSet.connect(tx.getId(),ConstraintSet.BOTTOM,bottomOf.getId(),ConstraintSet.TOP);
    if (index == 0) {
        constraintSet.connect(tx.getId(),ConstraintSet.LEFT,separatorBar.getId(),ConstraintSet.RIGHT);
    }else{
        constraintSet.connect(tx.getId(),ConstraintSet.LEFT,eventsAdded.get(index),ConstraintSet.RIGHT);
    }
    constraintSet.connect(tx.getId(),ConstraintSet.RIGHT,ConstraintSet.PARENT_ID,ConstraintSet.RIGHT);
    if(bias!=0){
        constraintSet.setVerticalBias(tx.getId(),(float)bias);
    }else{
        constraintSet.setVerticalBias(tx.getId(),0);
    }
    constraintSet.constrainHeight(tx.getId(),dpToPx(duration));
    constraintSet.constrainWidth(tx.getId(),dpToPx(60));
    constraintSet.setHorizontalBias(tx.getId(),(float)0);
    constraintSet.applyTo(constraintLayout);
    index++;

Редактировать: Похоже, что это может быть ошибкой в ​​ConstraintSet, не учитывающем ввод горизонтального смещения, но учитывающем вертикальное смещение. Я обновлю это, когда исправление выйдет. (Проверьте комментарии для ссылки на вопрос)

0 ответов

Другие вопросы по тегам