我期待我的所有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" />
答案 0 :(得分:1)
属性layout_toEndOf
按如下方式执行布局:
将此视图的起始边缘定位到给定锚点视图ID的末尾。 Link
这意味着您的所有TextView
开始边缘都与logo
的结尾对齐。
作为起点,只需删除所有layout_toEndOf
属性。
然后你的布局应该是这样的:
+--------------+
| | +-----------+
| | | stop |
| | +-----------+ +-----------+
| logo |/* no space */ | eta |
| | +-----------+ +-----------+
| | | direction |
| | +-----------+
+--------------+
更准确地说,logo
是垂直居中的,与eta
相同。由于您的布局代码明确地将stop
和direction
直接放在logo
的右侧,因此direction
低于stop
。