In this tutorial, we will learn about the Android table layout that divides its children into rows and columns. A Table Layout is made up of a number of TableRow objects, each of which defines a row (actually, you can have other children, which will be explained below). Borderlines for rows, columns, and cells are not displayed in Table Layout containers.
Table Layout is a ViewGroup subclass in Android that is used to display child View elements in rows and columns. Table Layout operates in a manner similar to an HTML table, and it contains as many columns as the row with the most cells.

Contents
An important point of Table Layout
- We use the element to build a row in a table. The objects in the table row are the child’s views of the table layout.
- Each table row contains null or more cells. Only one view item can be included in each cell, such as ImageView, TextView, etc.
- The total table width is defined by the parent container.
Table layout in Android XML code:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:collapseColumns="0">
<!-- first row of the table layout-->
<TableRow
android:id="@+id/row"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="First Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1" /> <!--first column of the table layout-->
</TableRow>
</TableLayout>
Table Layout Attribute:
| Attributes | Description |
|---|---|
| android:id | The id attribute is used to uniquely identify a Table Layout. |
| android: stretchColumns | This attribute is used when the width of a column is too small and you need to expand (or stretch) it. |
| android: shrinkColumns | If you don’t need the extra space in a column, use this attribute to shrink and remove it. |
| android:collapseColumns | It hides the given index’s column in the TableLayout. |
| android: layout_span | If a view only takes up one column width, but you want it to take up more than one column space, you can use this attribute. |
| android: layout_column | You can use this attribute to make your view in the first TableRow appear below the view in the other TableRow. |
Android Table Layout Example:
File: activity_main.xml–> Following will be the content of res/layout/activity_main.xml file is given below.
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow>
<TextView
android:text="First Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1" />
<EditText
android:width="200px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow>
<TextView
android:text="Last Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1" />
<EditText
android:width="100px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<SeekBar
style="@style/Widget.AppCompat.SeekBar.Discrete"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@+id/ratingBar"
android:layout_column="2" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:backgroundTint="@color/black"
android:id="@+id/button"
android:layout_column="2" />
</TableRow>
</TableLayout>
File: MainActivity.kt–> In MainActivity.kt file keep it is as it.
package com.sagar.tablelayout
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
- We hope that this guide will assist you in quickly creating a Table layout in Android. If you have any problems, please post them in the comments section, and we will gladly assist you.
- the official document of Table Layout.
Difference between Linear layout and Relative layout