Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

difference between android:collapseColumns and android:shrinkColumns of tableLayout

Tags:

android

xml

I am new in android development. I was reading TableLayout, Which have three major attributes

android:stretchColumns, android:collapseColumns & android:shrinkColumns.

After Some Research I got what exaclty meant by android:strechColumns but i am confused between collapseColumns and shrinkColumns. The official docs Saying.

android:shrinkColumns

The zero-based index of the columns to shrink. The column indices must be separated by a comma: 1, 2, 5. Illegal and duplicate indices are ignored. You can shrink all columns by using the value "*" instead. Note that a column can be marked stretchable and shrinkable at the same time.

android:collapseColumns

The zero-based index of the columns to collapse. The column indices must be separated by a comma: 1, 2, 5. Illegal and duplicate indices are ignored.

What is exactly mean by shrink and collapse .Could anyone tell me what is difference between them?

like image 547
Usman Anwer Avatar asked Oct 26 '25 12:10

Usman Anwer


1 Answers

  • android:stretchColumns

    The zero-based index of the columns to stretch. The column indices must be separated by a comma: 1, 2, 5. Illegal and duplicate indices are ignored. You can stretch all columns by using the value "*" instead. Note that a column can be marked stretchable and shrinkable at the same time.

  • android:shrinkColumns

    The zero-based index of the columns to shrink. The column indices must be separated by a comma: 1, 2, 5. Illegal and duplicate indices are ignored. You can shrink all columns by using the value "*" instead. Note that a column can be marked stretchable and shrinkable at the same time.

  • android:collapseColumns

    The zero-based index of the columns to collapse. The column indices must be separated by a comma: 1, 2, 5. Illegal and duplicate indices are ignored.

    <TableLayout  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="*"
    android:background="@color/grey">
    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:background="@color/red"
            android:textColor="@android:color/white"
            android:textSize="30dp"
            android:text="0" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:textColor="@android:color/white"
            android:textSize="30dp"
            android:background="@color/green"
            android:text="1" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="2"
            android:textColor="@android:color/white"
            android:textSize="30dp"
            android:background="@color/blue"
            android:text="2" />
    </TableRow>
    
    
    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="0"
            android:background="@color/red"
            android:textColor="@android:color/white"
            android:textSize="30dp"
            android:text="0" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:textColor="@android:color/white"
            android:textSize="30dp"
            android:background="@color/green"
            android:text="1" />
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="2"
            android:textColor="@android:color/white"
            android:textSize="30dp"
            android:background="@color/blue"
            android:text="2" />
      </TableRow>   
     </TableLayout>
    

Explanations:

android:stretchColumns="*"

enter image description here

Means it stretch all columns equally according table layout width

android:shrinkColumns="*"

enter image description here

Means it shrink all columns

android:shrinkColumns="0,2"

android:stretchColumns="1"

enter image description here

Means column 0 and 2 are wrap contain and column 1 stretch into available width

android:stretchColumns="0,1,2"

android:shrinkColumns="1"

enter image description here

Means if column already stretch then shrink not apply

android:shrinkColumns="*"

android:collapseColumns="1"

enter image description here

android:collapseColumns means it hide given column

android:stretchColumns="*"

TextView :- android:layout_column="2"

enter image description here

Meanning if tablerow first column layout parameter not start with 0 then empty view added into row

android:stretchColumns="*"

android:collapseColumns="1"

TextView :- android:layout_column="2"

enter image description here

Means if tablerow first column layout parameter not start with 0 then empty view added into row but if you collapse column then added empty view not hide of that column index only hide added view by explicit view

like image 78
Dishant Patel Avatar answered Oct 28 '25 02:10

Dishant Patel