Да, это свойство RelativeLayout
.
RelativeLayout
требует, чтобы вы указали отношение положения между виджетами.Если вы не укажете отношение позиции для всех виджетов, то все виджеты свернутся в (0, 0)
родительского элемента, что приведет к тому, что вы видите,
все, что я положил в дизайн, будет показанов верхнем левом углу.
Чтобы указать связь между виджетами, вы можете использовать свойство android:layout_*
series, например:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <!-- this will at top left -->
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/textView"
android:text="Button" /> <!-- this will at right of textView -->
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toBottomOf="@id/button"
android:text="TextView" /> <!-- this will below button -->
Вы можете попытаться указать их в Design Layout
, однако я обнаружил, что это немного сложно.
- Нажмите на виджет, тогда вокруг этого виджета будут круги.
- Нажмите на один круг, удерживайте.Все виджеты будут иметь круги вокруг.
- Перетащите этот круг на круги другого виджета, это создаст связь между ними, если вы используете
ConstraintLayout
. - Однако, похоже,это невозможно сделать, если вы используете
RelativeLayout
, поскольку все виджеты свернуты в одну и ту же позицию.
Подробнее см. Руководство по Android для RelativeLayout .