Почему гравитация не центрирует все мои взгляды?
Я ожидал, что весь мой TextView будет вертикально центрирован в моем RelativeLayout, но это касается только логотипа. Другие привязаны к вершине последнего.
Вот мой макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="72dp"
android:gravity="center_vertical">
<TextView
android:id="@+id/logo"
android:layout_width="40dp"
android:layout_height="40dp"
android:text="TextView" />
<TextView
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/logo"
android:layout_toRightOf="@+id/logo"
android:text="TextView" />
<TextView
android:id="@+id/eta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/stop"
android:layout_toRightOf="@+id/stop"
android:text="TextView" />
<TextView
android:id="@+id/direction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/stop"
android:layout_toEndOf="@+id/logo"
android:layout_toRightOf="@+id/logo"
android:text="TextView" />
1 ответ
Атрибут layout_toEndOf
выполняет верстку следующим образом:
Помещает начальный край этого вида в конец заданного идентификатора якорного вида. Ссылка на сайт
Что означает, что все ваши TextView
s начальные края совпадают с logo
'Отправить. В качестве отправной точки просто удалите все layout_toEndOf
атрибутов.
Тогда ваш макет должен выглядеть примерно так:
+--------------+
| | +-----------+
| | | stop |
| | +-----------+ +-----------+
| logo |/* no space */ | eta |
| | +-----------+ +-----------+
| | | direction |
| | +-----------+
+--------------+
Точнее, logo
вертикально по центру, так же, как eta
, Так как ваш код макета явно размещает stop
а также direction
прямо справа от logo
, следовательно direction
ниже stop
,