我有以下Android布局
<?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="match_parent"
android:paddingBottom="16dp"
android:orientation="vertical" >
<TextView
android:id="@+id/slideTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:padding="@dimen/px20"
android:text="@string/login_message"
android:textSize="@dimen/px25"
android:textStyle="bold" />
<TextView
android:id="@+id/slideDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/password"
android:drawablePadding="@dimen/px20"
android:drawableStart="@drawable/password"
android:padding="@dimen/px20"
android:text="@string/login_message_body"
android:textSize="@dimen/px20" />
<TextView
android:id="@+id/swipeMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="" />
</RelativeLayout>
但是所有元素都位于屏幕顶部,一个在另一个上面,就像它们没有占据任何空间一样。
这不是RelativeLayout documentation中似乎发生的情况,其中所有元素都垂直地位于另一个之下。
这里发生了什么?
答案 0 :(得分:2)
为了在RelativeLayout中将一个视图放在另一个视图下方,您必须使用layout_below属性并将您想要的视图ID设置为高于指定的视图。但实际上,为了将视图垂直放置在彼此之下,使用方向设置为垂直的LinearLayout更方便
答案 1 :(得分:2)
所以你需要使用其他组件的id来正确对齐。
例如,身份TextView
的{{1}}也应该有
@+id/slideDescription
作为xml的一个属性。
标识为android:layout_below="@+id/slideTitle"
的{{1}}也应该有
TextView
作为xml的一个属性。
答案 2 :(得分:1)
layout_below。我用那个替换了代码。请使用它。
在相对布局中,elemnet将相对于其他元素进行排列,为了做到这一点,我们应该使用各个视图元素的id值
<强>机器人:layout_below =&#34; @ ID / slideTitle&#34;应放在描述文本视图中 机器人:layout_below =&#34; @ ID / slideDescription&#34;应放在消息文本视图中
为了获得您想要的输出,请使用以下代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="16dp" >
<TextView
android:id="@+id/slideTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:padding="@dimen/px20"
android:text="@string/login_message"
android:textSize="@dimen/px25"
android:textStyle="bold" />
<TextView
android:id="@+id/slideDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/slideTitle"
android:drawableLeft="@drawable/password"
android:drawablePadding="@dimen/px20"
android:drawableStart="@drawable/password"
android:padding="@dimen/px20"
android:text="@string/login_message_body"
android:textSize="@dimen/px20" />
<TextView
android:id="@+id/swipeMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@id/slideDescription"
android:text="" />