Пользовательская ViewGroup, расширяющая ConstraintLayout, не отображает представления, если представление не ограничено Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Пользовательская ViewGroup, расширяющая ConstraintLayout, не отображает представления, если представление не ограничено

Сообщение Anonymous »

Я создал собственную ViewGroup, которая расширяет ConstraintLayout и динамически добавляет себя в качестве представления. Внутри этой ViewGroup я добавляю элементы EditText и TextView. Моя цель состоит в том, чтобы первый EditText был ограничен с трех сторон: сверху, снизу и начала. Следующие представления должны располагаться справа, начиная с конца предыдущего представления.
Однако я столкнулся с двумя проблемами:
  • EditText не отображается, если он не ограничен со всех четырех сторон, а это не то, чего я хочу. Я хочу, чтобы оно было ограничено только с трех сторон.
  • Представление занимает весь макет, даже если для ширины и высоты установлено значение Wrap_content.
Что может быть причиной этих проблем и как добиться желаемого поведения макета?
Код для EditText:
EditText editText = new EditText(this.context);
editText.setId(generateViewId());
editText.setLayoutParams(this.layoutParams);
editText.setMinWidth(convertDpToPx(20));
editText.setMinHeight(convertDpToPx(20));
editText.setTextSize(regularTextSizeSP);
editText.setTextColor(textColorID);
editText.setTypeface(typeFace);
editText.setBackground(null);
editText.setText(expression);
editText.setShowSoftInputOnFocus(false);
editText.setIncludeFontPadding(false);
editText.setPadding(0, 0, 0, 0);
editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
editText.setMovementMethod(null);
editText.setFocusableInTouchMode(true);

addViewToConstraint(editText);

Метод addViewToConstraint:
constraintSet = new ConstraintSet();
constraintSet.clone(this);

constraintSet.connect(view.getId(), ConstraintSet.START, this.getId(), ConstraintSet.START);
// constraintSet.connect(view.getId(), ConstraintSet.END, this.getId(), ConstraintSet.END);
constraintSet.connect(view.getId(), ConstraintSet.TOP, this.getId(), ConstraintSet.TOP);
constraintSet.connect(view.getId(), ConstraintSet.BOTTOM, this.getId(), ConstraintSet.BOTTOM);
constraintSet.applyTo(this);


Подробнее здесь: https://stackoverflow.com/questions/791 ... e-view-isn
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»