Cómo establecer divisor entre columnas en tablelayout?

Quiero crear una tabla con divisores de columnas. Quiero dividir mis columnas con una imagen de barra vertical. Para lograr esto he utilizado "android:divider="@drawable/abc" pero no funciona.A continuación está mi archivo xml para el mismo:

  <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:stretchColumns="*" android:padding="5dip" android:divider="@drawable/tracking_green" > <TableRow > <TextView android:id="@+id/retaileritem1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="xxxxxxx" /> <TextView android:id="@+id/retaileritem2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="xxxxxxx" /> <ImageView android:id="@+id/retailerimage1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:src="@drawable/tracking_green" /> </TableRow> 

6 Solutions collect form web for “Cómo establecer divisor entre columnas en tablelayout?”

Añadir android: showDividers = "middle"

 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:stretchColumns="*" android:padding="5dip" android:divider="@drawable/tracking_green" android:showDividers="middle" > 

¡Así es como lo hice!

CÓDIGO

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="5dp" > <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:paddingBottom="50dp" android:text="Salary Details" android:textAppearance="?android:attr/textAppearanceLarge" android:textStyle="bold" /> <TableLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:shrinkColumns="0" android:stretchColumns="1" > <TableRow android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" > <TextView android:layout_gravity="center_vertical" android:gravity="left" android:text="Financial Year" android:textColor="@android:color/white" android:textSize="14sp" android:textStyle="bold" /> <Spinner android:id="@+id/spnSearchByCity" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_gravity="center_vertical" android:entries="@array/year" tools:listitem="@android:layout/simple_spinner_dropdown_item" /> </TableRow> </TableLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#d30059" android:orientation="vertical" android:paddingTop="50dp" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/white" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_marginTop="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="Month" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_marginTop="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="Net Salary" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="Click" android:textAppearance="?android:attr/textAppearanceMedium" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/white" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="Jan" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="11305" android:textAppearance="?android:attr/textAppearanceMedium" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/txtDetailsOneId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#000000" android:text="DETAILS" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:color/white" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="Feb" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:text="11405" android:textAppearance="?android:attr/textAppearanceMedium" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:layout_weight="1" android:background="#d30059" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/txtDetailsTwoId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="#000000" android:text="DETAILS" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TableRow> </TableLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="50dp" > <Button android:id="@+id/btnMainMenuId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="5dp" android:text="MAIN MENU" android:textColor="@android:color/white" android:textSize="12sp" /> </LinearLayout> </LinearLayout> 

Instantánea

Introduzca aquí la descripción de la imagen

Lo que quería es una mesa como esta

Imagen de mesa con divisores verticales

He añadido esto en mi styles.xml

  <style name="Divider"> <item name="android:layout_width">1dip</item> <item name="android:layout_height">match_parent</item> <item name="android:background">@color/divider_color</item> </style> <style name="Divider_invisible"> <item name="android:layout_width">1dip</item> <item name="android:layout_height">match_parent</item> </style> Then in my table layout <TableLayout android:id="@+id/table" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:stretchColumns="*" > <TableRow android:id="@+id/tableRow1" android:layout_width="fill_parent" android:layout_height="match_parent" android:background="#92C94A" > <TextView android:id="@+id/textView11" android:paddingBottom="10dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="10dp" /> <LinearLayout android:layout_width="1dp" android:layout_height="match_parent" > <View style="@style/Divider_invisible" /> </LinearLayout> <TextView android:id="@+id/textView12" android:paddingBottom="10dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="10dp" android:text="@string/main_wo_colon" android:textColor="@color/white" android:textSize="16sp" /> <LinearLayout android:layout_width="1dp" android:layout_height="match_parent" > <View style="@style/Divider" /> </LinearLayout> <TextView android:id="@+id/textView13" android:paddingBottom="10dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="10dp" android:text="@string/side_wo_colon" android:textColor="@color/white" android:textSize="16sp" /> <LinearLayout android:layout_width="1dp" android:layout_height="match_parent" > <View style="@style/Divider" /> </LinearLayout> <TextView android:id="@+id/textView14" android:paddingBottom="10dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="10dp" android:text="@string/total" android:textColor="@color/white" android:textSize="16sp" /> </TableRow> <!-- display this button in 3rd column via layout_column(zero based) --> <TableRow android:id="@+id/tableRow2" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#6F9C33" > <TextView android:id="@+id/textView21" android:padding="5dp" android:text="@string/servings" android:textColor="@color/white" android:textSize="16sp" /> <LinearLayout android:layout_width="1dp" android:layout_height="match_parent" > <View style="@style/Divider" /> </LinearLayout> .......... ....... ...... 

Ya que tablelayout no proporciona esto directamente, una manera posibble podría ser un framelayout. Coloque la tabla deseada encima de otra tabla de fondo que sólo tiene una fila y "match_parent" para altura / ancho. Agregue 3 columnas con el layout_weights deseado. Añadir vertical divider-imageview a la segunda columna. La tabla principal también debe usar el mismo layout_weihts + margen en las filas para parecer bueno.

Divisor horizontal posiblemente podría realizarse mediante la adición de una vista de imagen entre los tableros "a-ser-separados".

No probado aún, sólo un enfoque

Ornay

En una lista con un divisor vertical, utilice ImageView de la siguiente manera:

 <ImageView android:id="@+id/divider" android:contentDescription="@string/divider" android:layout_width="1dp" android:layout_height="65dp" android:layout_marginTop="8sp" android:background="#3B3B3B" /> 

Para evitar mostrar un divisor cuando no hay elementos en la lista, puede eliminar la línea android:background="#3B3B3B" y configurarla de forma programática:

 ((ImageView) view.findViewById(R.id.divider)).setBackgroundColor(Color.parseColor("#3B3B3B")); 

Intenta establecer el segundo textview marginleft = 1dp. Si usted no quiere que el divisor fije marginleft = 0dp

  • Radiogrupo Android, divisor entre los botones de radio
  • Divisores entre TabWidgets
  • Cómo obtener divisores en el menú de NavigationView sin títulos?
  • Android: eliminar el divisor de algunos listitems en listview
  • ¿Cómo puedo quitar el divisor entre el ActionBar y las pestañas
  • ¿Cómo agregar divisores entre elementos de menú específicos?
  • Android: No se puede diseñar el divisor de hilado
  • El divisor de Android ExpandableListView es invisible
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.