Android: Table Layout 对齐问题

CSDN移动问答

我想让 'Duration' 和 'Cost' 向右对齐,我使用的下面的代码但是没有实现:

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

<com.markupartist.android.widget.ActionBar
    android:id="@+id/actionBar"
    style="@style/ActionBar" />

<TableLayout 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   <TableRow
       android:layout_width="fill_parent"
       android:layout_height="wrap_content">
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingLeft="5dip"
           android:text="Date" />
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingLeft="5dip"
           android:text="Couse Name" />
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingLeft="5dip"
           android:layout_gravity="right"
           android:text="Duration" />
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingLeft="5dip"
           android:paddingRight="5dip"
           android:layout_gravity="right"
           android:text="Cost" />
   </TableRow>       
 </TableLayout>    
</LinearLayout>

layout_gravity="right" 不能运行,我使用gravity="ritght"但还是不行,我也想让每个列居中对齐。如何实现呢?

在中间加一个空的textview占位置,可以实现左右各放两个

  <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingLeft="5dip"
           android:text="Couse Name" />
 <TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_weight="1"  />
 <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:paddingLeft="5dip"
     android:layout_gravity="right"
     android:text="Duration" />

也可以在每个textview加上 android:layout_weight="1"属性,这样可居中显示

楼上说的对,这种情况一般考虑有weight比重来处理比较方便些