2012-10-15 11 views
13

Desidero disegnare una tabella in cui l'ultima colonna dovrebbe trovarsi nella parte destra della tabella.Right align colonna nel layout di tabella Android

Questo è come la riga della tabella si presenta come:

Admin (2)New 
Network (2)New 

E questo è come dovrebbe essere:

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> 

In questo XML t7 dovrebbe essere proprio a destra più lato del tavolo, come si fa ???

+0

È possibile raggruppare LinearLayout e altre viste per rendere il TableRow più colonna-esque. Quindi, invece di avere una singola riga della tabella con 8 colonne, avresti una singola riga con due colonne (come nel tuo esempio). – Cookster

risposta

21

Ecco quello che dovete fare

  1. impostare la larghezza riga della tabella di fill_parent

  2. e impostare il android:layout_gravity="right" al TextView che si desidera allineare destra alla riga della tabella

    ---- o ----

  1. aggiungere il peso alla vista testo all'interno di una riga della tabella in modo che possano allineare come si desidera.
+0

Questo è quello che ho fatto e Ma lo fa non funziona??? –

+0

Come si fa il secondo? –

+0

hai ottenuto il tuo requisito con il primo metodo? –

19
  1. android: stretchColumns = "x" dove x è la colonna che si desidera riempire
  2. android: layout_width = "fill_parent" per assicurarsi che tutto riempie lo schermo
  3. Android: layout_gravity = "right" per il componente di visualizzazione nella colonna "x"

esempio (pseudo codice):

<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

L'importanza del # 1 è che i tipici layout di tabella sono dominati da una colonna che contiene la maggior parte dei dati. Se quella colonna è piccola, le altezze delle righe della tabella potrebbero essere di dimensioni diverse. – Cookster

Problemi correlati