RelativeLayout - 将文本项定位在android中

时间:2013-06-12 14:25:17

标签: android-layout android-listview relativelayout textview android

我有一个listview,从数据库中获取少量列,并使用listview填充文本视图...但我有一个问题,导致项目重叠... 这是我想要做的: http://i.stack.imgur.com/AR5Jp.jpg

粗体文本将是静态的(取自@string),而灰色文本应从数据库中获取,该文本可能只是一个或多个单词。 我的.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="6dip" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/textView1"
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:visibility="invisible"/>
<TextView
    android:id="@+id/idTender"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"        
    android:text=""
    android:visibility="invisible" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/textView2"
    android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
    android:id="@+id/number"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/textView4"
    android:text="" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/textView2"
    android:text="@string/textView3"
    android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
    android:id="@+id/Text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/textView4"
    android:text="" />  

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/textView2"
    android:text="@string/textView3"
    android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
    android:id="@+id/Text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/textView4"
    android:text="" />   
</RelativeLayout>

我尝试了很多方法,通过使用android:layout,如bellow,alignleft和测试其他人..但我无法找到这种设计背后的逻辑......

所以,如果你能帮助我建立这个布局,那将是非常好的......

1 个答案:

答案 0 :(得分:0)

左侧的标签应相互水平对齐,或者与左侧屏幕边框的边距相同。每个值标签应水平对齐标签的右侧。垂直对齐以避免重叠的关键点是您将每个标签对齐到前一个值之下,而不是之前的标签。

<?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" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:text="Number:"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="myNumber"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="20dp"
        android:text="Text1:"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView3"
        android:layout_alignLeft="@+id/textView2"
        android:text="long text is long is long text long is text is very very long text is long text long is indeed very long text even longer than what you would expect"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="20dp"
        android:layout_alignLeft="@+id/textView3"
        android:text="Text2:"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView5"
        android:layout_alignLeft="@+id/textView4"
        android:text="Yay this is in the right position"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

Layout