Вы можете связать и позиционировать любой вид по их идентификаторам при использовании RelativeLayout
.
Например:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/tv1"/>
</RelativeLayout>
Этот образец макета будет отображать два TextView
, оба по центру, относящиеся к их родителю, и расположенные один под другим.
Существует множество параметров, которые можно использовать для размещения видов на этом макете, как в следующих примерах, взятых из документов:
Некоторые из множества свойств макета доступны для просмотра в
RelativeLayout включает в себя:
android:layout_alignParentTop
Если "true", делает верхний край этого
представление соответствует верхнему краю родителя.
android:layout_centerVertical
Если "true", этот дочерний элемент центрируется вертикально внутри его родителя.
android:layout_below
Позиционирует верхний край этого вида под
вид, указанный с идентификатором ресурса.
android:layout_toRightOf
Позиции
левый край этого вида справа от вида, указанного с помощью
идентификатор ресурса.
Подробнее о этих параметрах вы можете прочитать здесь .
Я советую вам прочитать документы о RelativeLayout
, чтобы проверить, как это работает.
Теперь лучше взглянуть на другой менеджер раскладки, известный как ConstraintLayout
, он немного похож на RelativeLayout
, но он намного мощнее. Посмотрите здесь , чтобы увидеть, как это работает.
Кроме того, этот сайт показывает, как вы можете имитировать поведение других макетов, используя ConstraintLayout
, посмотрите!