将列表视图的项目与其他布局中的项目对齐

时间:2013-02-13 18:00:36

标签: android xml listview layout alignment

我的这个布局有一个表格布局,里面有四个项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TableLayout 
        android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:stretchColumns="0,1,2,3,4,5,6,7"
    android:background="#FF3538">

       <TableRow>

    <TextView
        android:id="@+id/o1"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/fecha"
         />



    <TextView
        android:id="@+id/o2"
        android:gravity="center"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Vv"
        />


    <TextView
        android:id="@+id/o3"
        android:gravity="center"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Dv"
        />


    <TextView
        android:id="@+id/o4"
        android:gravity="center"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Ht"
        />

 </TableRow>
  </TableLayout>

  <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView"></ListView>
  </LinearLayout>

</LinearLayout>

这个其他布局(列表视图)

<?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:background="@drawable/celda_cabecera" >

    <TableLayout 
        android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:stretchColumns="0,1,2,3,4,5,6,7"
    >

       <TableRow>

    <TextView
        android:id="@+id/o1"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"

         />

    <TextView
        android:id="@+id/o2"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         android:gravity="center"

        />

    <ImageView
        android:id="@+id/o3"
        android:contentDescription="@string/dirviento"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        />

    <TextView
        android:id="@+id/04"
        android:textStyle="bold"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
       />
</TableRow>
    </TableLayout>


</RelativeLayout>

我想将listview的项目与第一个布局的项目对齐,但我的解决方案不能正常工作

1 个答案:

答案 0 :(得分:2)

嗨@Er_我认为你必须使用重量概念。

只需将<TableRow>下的所有视图替换为如下视图。

示例:

<TextView
    android:id="@+id/o1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center"
    android:text="@string/fecha"
    android:textStyle="bold" />

因此,对<TableRow>

的所有子视图赋予相同的权重

威胁我取代,

    android:layout_width="0dp"
    android:layout_weight="1"

而不是

    android:layout_width="wrap_content"