tutorial studio programacion para libro guia desarrollador avanzado android android-tablelayout

studio - Alinear a la derecha la columna en el diseño de la tabla de Android



manual de java para android (2)

Quiero dibujar una tabla en la que la última columna debería estar en el lado más a la derecha de la tabla.

Así es como se ve la fila de la tabla:

Admin (2)New Network (2)New

Y así es como debe ser:

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>

En este xml t7 debería estar justo al lado derecho de la tabla, ¿cómo hacer esto?


  1. android: stretchColumns = "x" donde x es la columna que desea rellenar
  2. android: layout_width = "fill_parent" para asegurar que todo llene la pantalla
  3. android: layout_gravity = "right" para el componente de vista en la columna "x"

Ejemplo (pseudo código):

<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>


Aqui tienes que hacer

  1. establecer el ancho de la fila de la tabla a fill_parent

  2. y configure android:layout_gravity="right" en la vista de texto que desea alinear con la fila de la tabla

    ---- o ----

  1. agregue el peso a la vista de texto dentro de una fila de la tabla para que puedan alinearse como desee.