我正在开发一个Android应用程序,其相对布局如下所示。
以下是应用在屏幕上显示方式的简短链接:http://imgur.com/c4rNJ。我希望'文字1'出现在'懒惰的狐狸......'正上方。希望这有助于澄清我希望实现的目标。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:background="@color/white">
<TextView android:id="@+id/text1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginLeft="0dip"
android:textColor="@color/black" android:text="Text 1" android:lines="1"
android:scrollHorizontally="true" android:ellipsize="end" />
<Button android:id="@+id/checkBox" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:drawableRight="@drawable/checkbox_unchecked_30"
android:layout_below="@+id/text1" android:background="@color/white" />
<TextView android:id="@+id/text2" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_toRightOf="@+id/checkBox"
android:layout_alignTop="@+id/checkBox" android:layout_below="@+id/text1"
android:textColor="@color/black" android:text="a lazy fox jumped over the dam and said help"
android:lines="1" android:scrollHorizontally="true" android:ellipsize="end" />
<TextView android:id="@+id/text3" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_toRightOf="@+id/checkBox"
android:layout_below="@+id/text2" android:textColor="@color/black"
android:text="Text 3" />
<TextView android:id="@+id/text4" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_below="@+id/text2"
android:layout_toRightOf="@+id/text3" android:textColor="@color/black"
android:text="Text 4" />
<TextView android:id="@+id/text5" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_below="@+id/text2"
android:layout_toRightOf="@+id/text4" android:textColor="@color/black"
android:text="Text 5" />
</RelativeLayout>
我希望“文字1”出现在以“懒狐狸......”开头的文字正上方。现在,“文本1”出现在复选框上方。我不知道如何实现上述目标。我尝试了各种各样的东西,但似乎没有任何工作。我应该做些什么来实现所需的布局?
答案 0 :(得分:3)
您需要将layout_alightLeft
属性添加到text1
:
<TextView android:id="@+id/text1"
android:layout_alignLeft="@+id/text2"
...
/>
完整布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TextView android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dip"
android:layout_alignLeft="@+id/text2"
android:text="Text 1"
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end" />
<Button
android:id="@+id/checkBox"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/text1"
android:text="button" />
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/checkBox"
android:layout_alignTop="@+id/checkBox"
android:layout_below="@+id/text1"
android:text="a lazy fox jumped over the dam and said help"
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/checkBox"
android:layout_below="@+id/text2"
android:text="Text 3" />
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text2"
android:layout_toRightOf="@+id/text3"
android:text="Text 4" />
<TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text2"
android:layout_toRightOf="@+id/text4"
android:text="Text 5" />
</RelativeLayout>
答案 1 :(得分:2)
我的目标是Android 1.5,其中前向引用在RelativeLayout中不起作用。前向引用首先在Android 1.6中实现(请参阅:http://developer.android.com/resources/articles/ui-1.6.html),因此其他任何建议的解决方案都无效。
答案 2 :(得分:1)
如果我理解你的要求,你希望“Text1”显示在“懒惰的狐狸......”的正上方/对齐。
尝试将第一个TextView的定义更改为此(注意最后一个属性):
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dip"
android:textColor="@color/black"
android:text="Text 1"
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:layout_alignLeft="@+id/text2" />
编辑: 这是完整的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@android:color/white">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="0dip"
android:textColor="@android:color/black"
android:text="Text 1"
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:layout_alignLeft="@+id/text2" />
<Button
android:id="@+id/checkBox"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/text1"
android:drawableRight="@drawable/checkbox_unchecked_30"
android:background="@android:color/white" />
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/checkBox"
android:layout_alignTop="@+id/checkBox"
android:layout_below="@+id/text1"
android:textColor="@android:color/black"
android:text="a lazy fox jumped over the dam and said help"
android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end" />
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/checkBox"
android:layout_below="@+id/text2"
android:textColor="@android:color/black"
android:text="Text 3" />
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text2"
android:layout_toRightOf="@+id/text3"
android:textColor="@android:color/black"
android:text="Text 4" />
<TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text2"
android:layout_toRightOf="@+id/text4"
android:textColor="@android:color/black"
android:text="Text 5" />
</RelativeLayout>
答案 3 :(得分:0)
我认为您应该将android: layout_below="@id/editText2"
添加到text1