2012-10-15 39 views
13

我想繪製一個表格,最後一列應該在表格的最右邊。在android表格佈局中右對齊列

這是錶行的樣子:

Admin (2)New 
Network (2)New 

這是應該的:

Admin (2)   New 
Network (2)  New 

XML:

<?xml version="1.0" encoding="utf-8"?> 
<!-- row.xml --> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="45dp" 
    android:gravity="center" android:background="@color/list_bg"> 

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

     <TableRow> 



      <ImageView android:id="@+id/t1" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 

      <TextView android:id="@+id/t2" android:typeface="normal" 
       android:singleLine="true" android:textSize="14sp" android:textStyle="normal" 
       android:layout_width="wrap_content" android:textColor="#000000" 
       android:layout_height="wrap_content" /> 
      <TextView android:id="@+id/t10" android:typeface="normal" 
       android:singleLine="true" android:text=" " android:textSize="14sp" 
       android:textStyle="normal" android:layout_width="wrap_content" 
       android:textColor="#000000" android:layout_height="wrap_content" /> 
      <TextView android:id="@+id/t4" android:typeface="normal" 
       android:visibility="gone" android:singleLine="true" android:text="(" 
       android:textSize="14sp" android:textStyle="normal" 
       android:layout_width="wrap_content" android:textColor="#000000" 
       android:layout_height="wrap_content" /> 
      <TextView android:id="@+id/t5" android:typeface="normal" 
       android:visibility="gone" android:singleLine="true" 
       android:textSize="14sp" android:textStyle="normal" 
       android:layout_width="wrap_content" android:textColor="#000000" 
       android:layout_height="wrap_content" /> 
      <TextView android:id="@+id/t6" android:typeface="normal" 
       android:visibility="gone" android:singleLine="true" android:text=")" 
       android:textSize="14sp" android:textStyle="normal" 
       android:layout_width="wrap_content" android:textColor="#000000" 
       android:layout_height="wrap_content" /> 
      <ImageView android:id="@+id/t3" android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 
      <TextView android:id="@+id/t7" android:typeface="normal" 
       android:visibility="visible" android:singleLine="true" android:text="New" 
       android:textSize="14sp" 
       android:textStyle="normal" android:layout_width="wrap_content" 
       android:textColor="#000000" android:layout_height="wrap_content" /> 

     </TableRow> 

    </TableLayout> 

</RelativeLayout> 

在該XML T7應該是在桌子的最右邊,怎麼做?

+0

您可以對LinearLayout和其他視圖進行分組,以使您的TableRow更加專欄式。因此,不是隻有一個包含8列的表格行,而是隻有一列有兩列(如您的示例)。 – Cookster

回答

21

在這裏,你所要做的

  1. 設置表格行的寬度到fill_parent

  2. ,並設置android:layout_gravity="right"到要對齊右錶行

    TextView的----或----

  1. 將權重添加到表格行內的textview,以便它們可以對齊您想要的方式。
+0

這是我做的但它確實不行??? –

+0

如何做第二個? –

+0

你有第一種方法嗎? –

19
  1. 機器人:stretchColumns = 「X」其中x是要填補
  2. 機器人列:layout_width = 「FILL_PARENT」,以確保一切充滿屏幕
  3. 機器人: layout_gravity =用於視圖分量在列 「×」

示例(僞碼) 「右」

<TableLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="1"> 

    <TableRow> 
     <TextView android:text="Left Column" /> 
     <TextView android:layout_gravity="right|center_vertical" android:text="Right Adjusted Column" /> 
    </TableRow> 

</TableLayout> 
+0

#1的重要性在於典型的表格佈局由包含最多數據的列控制。如果該列是兩個小的表格行高度可能都是不同的大小。 – Cookster