我有以下布局文件:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:text="TOP"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:background="@color/azul_pressed"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv1"
android:paddingLeft="100dp"
android:text="|RIGHT--"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv2"
android:layout_toLeftOf="@id/tv1"
android:text="--LEFT|"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<TextView
android:text="BOTTOM"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
产生以下输出:
这一行:
android:layout_toLeftOf="@id/tv1"
导致 tv2 从屏幕上消失并创建所有额外的蓝色空间。
为什么?
答案 0 :(得分:0)
在相对布局中,您必须对齐,您必须将内容与父级或其他小部件对齐。
我相信这就是你要找的东西:
<TextView
android:id="@+id/tv1"
android:paddingLeft="100dp"
android:text="|RIGHT--"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/tv2"/>
<TextView
android:id="@+id/tv2"
android:layout_alignParentLeft="true"
android:text="--LEFT|"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
看看我如何将tv1与父母的左边对齐,然后将tv2对齐到tv1的右边。
你也可以反过来做。
答案 1 :(得分:0)
您是否将填充与保证金混淆?填充将在TextView中移动文本,并且实际上不是边界的一部分。如果你想从侧面推送它们,或者在父ViewGroup上填充(同样的事情),请使用边距。
<TextView
android:id="@+id/tv2"
android:layout_alignParentLeft="true"
android:text="--LEFT|"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv1"
android:text="|RIGHT--"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/tv2"/>
这会将视图放在彼此旁边。
如果您想在左侧将它们偏移100像素,请添加:
android:margin_left="100dp"
到tv2。由于tv1连接到tv2的右侧,因此它将推动两个100dp。我不太确定你的意图是什么,但我认为对孩子们设置重力的LinearLayout
会更好,因为两个文本视图都占据相同的空间并且均匀分布。
编辑:请注意,这与Carlos Paulino的答案类似。我认为你混淆了文本的填充偏移与布局边界。