Ваш EditText
имеет ненулевую высоту (wrap_content) и ограничен вершиной родительского элемента.
Ваш ListView
имеет фиксированную высоту (266dp) и ограничен низом родителя.
Ваш RadioGroup
имеет фиксированную высоту (47dp) и ограничен между EditText
и ListView
.
Рассмотрим, что произойдет, если доступная высота (высота родительского элемента) будет меньше, чем 266dp + 47dp + высота EditText. Еще проще, подумайте, что произойдет, если доступная высота меньше 266dp.
В этих случаях вершина ListView
будет на выше нижней части EditText
. Это «потянет» RadioGroup
в противоположных направлениях, и оно наложится на себя поверх EditText
и ListView
.
Нет быстрого решения этой проблемы. Вероятно, то, что вы хотите сделать, это изменить размер и ограничения всего. Я бы порекомендовал:
- Оставьте EditText таким, какой он есть
- Измените RadioGroup так, чтобы она ограничивалась только нижней частью EditText
- Измените ListView, чтобы он имел высоту 0dp, и ограничьте его верхнюю часть нижней частью RadioGroup, а его нижнюю часть - нижней частью родительского элемента
Это приведет к тому, что все «лишние» места будут переданы ListView
.
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
...>
<RadioGroup
android:id="@+id/radioGroup"
android:layout_height="47dp"
app:layout_constraintTop_toBottomOf="@+id/editText"
...>
<!-- ... -->
</RadioGroup>
<EditText
android:id="@+id/editText"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
.../>
<Button
.../>
<ListView
android:id="@+id/listView"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/radioGroup"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>