布局对齐问题

时间:2012-11-20 14:50:31

标签: android textview alignment

我有一个相对布局,里面有两个线性布局,每个布局都有两个文本视图。 我希望textviews水平显示为一行。 代码如下:

     <RelativeLayout
        android:id="@+id/linear2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/txtlinear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/esms_parentfees_classtext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/esms_parentfees_classdetais"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
      <LinearLayout
            android:layout_gravity="center_horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/esms_parentfees_classdetais"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/esms_parentfees_datetext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

            <TextView
                android:id="@+id/esms_parentfees_datedetais"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </RelativeLayout>

4 个答案:

答案 0 :(得分:1)

关于XML的说明:

  • 您不能在LinearLayout
  • 中使用toRightOf等
  • RelativeLayout没有方向

出于某种原因需要显示所有XML吗?忽略此行

<RelativeLayout 
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/esms_parentfees_classtext"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5" />

        <TextView
            android:id="@+id/esms_parentfees_classdetais"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/esms_parentfees_datetext"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5" />

        <TextView
            android:id="@+id/esms_parentfees_datedetais"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5" />
    </LinearLayout>

</RelativeLayout>

答案 1 :(得分:0)

最简单的方法是将外部RelativeLayout设为LinearLayout

 <LinearLayout
    android:id="@+id/linear2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

然后删除任何标签,如

android:layout_toRightOf="@+id/esms_parentfees_classdetais"

或者,您可以将上面提到的标签更改为

android:layout_below="@+id/esms_parentfees_classdetais"

答案 2 :(得分:0)

如果你需要连续的四个文本视图,它很容易使用带有四个文本视图的线性布局(或表格布局),而不是在相对布局中使用两个线性布局。

看看这个:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/txtlinear"
    >
   <TextView
        android:id="@+id/esms_parentfees_classtext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />

    <TextView
        android:id="@+id/esms_parentfees_classdetais"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />

    <TextView
        android:id="@+id/esms_parentfees_datetext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />

    <TextView
        android:id="@+id/esms_parentfees_datedetais"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />


</LinearLayout>

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/txtlinear"
 >

<TableRow
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/esms_parentfees_classtext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />

    <TextView
        android:id="@+id/esms_parentfees_classdetais"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />

    <TextView
        android:id="@+id/esms_parentfees_datetext"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />

    <TextView
        android:id="@+id/esms_parentfees_datedetais"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hi" />
</TableRow>

</TableLayout>

或者如果它需要一个具有两个线性布局的相对布局,你可以遵循上面的任何解决方案

答案 3 :(得分:-1)

<RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            >
            <TextView
                 android:id="@+id/esms_parentfees_classtext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
            <TextView
                 android:id="@+id/esms_parentfees_classdetais"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@+id/esms_parentfees_classtext"
                 />
        </RelativeLayout>