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?
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="*"

Means it stretch all columns equally according table layout width
android:shrinkColumns="*"

Means it shrink all columns
android:shrinkColumns="0,2"
android:stretchColumns="1"

Means column 0 and 2 are wrap contain and column 1 stretch into available width
android:stretchColumns="0,1,2"
android:shrinkColumns="1"

Means if column already stretch then shrink not apply
android:shrinkColumns="*"
android:collapseColumns="1"

android:collapseColumns means it hide given column
android:stretchColumns="*"
TextView :- android:layout_column="2"

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"

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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With