Android table layout formatting problems
Solution 1
Add android:stretchColumns
and android:shrinkColumns
to the TableLayout
element:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:shrinkColumns="1">
The 1
values are the columns you want the changes to occur. You can specify more that one value like this:
android:stretchColumns="0,1"
or if you want the changes to happen to all you columns like this:
android:stretchColumns="*"
Please look here for detailed information: http://android-pro.blogspot.com/2010/02/table-layout.html
Solution 2
i had the same problem with my app and found the following solution:
<TableLayout
android:shrinkColumns="0"
android:stretchColumns="1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</TableLayout>
This works fine with 2 Columns.
Solution 3
I had the same problem and solved it by adding
android:stretchColumns="0"
to the TableLayout element and setting
android:layout_width="0dp"
on the TextView that was too long.
Solution 4
inside table layout use shrinkColumns property for columns you want them to be allowed to shrink for fitting
easiest way is:
<TableLayout
android:shrinkColumns="*"/>
to shrink all columns or you can write instead of " *" ,the column indices you want to shrink , which in your case will be
<TableLayout
android:shrinkColumns="0,1"/>
note that column indices start from zero , so the latest code allows first (index=0) and second (index =1) columns to shrink.
Solution 5
There is temporary fix, do:
android:stretchColumns = " (number of actual col) - 1 "
No solution here worked in my case.
Related videos on Youtube
sammybar
Updated on May 17, 2021Comments
-
sammybar almost 3 years
I can not get my TableLayout to fit inside the screen
when the text cell is large
, despite the text wrapsinside the cell
.This is my TableLayout. A simple two-rows, two-columns table. Left column cells are
multiline
. If the text of one of these cell is large enought to break in two lines, the column is stretched to fill the entire screen and the right columns is pushed out of the screen.Why? How can I force the full table to stay inside the screen? Any hint is welcomed.
My TableLayout is the following:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableRow> <TextView android:text="Account 4 with a very large name to see if it breaks on two or more lines" android:singleLine="false" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TextView> <TextView android:text="$400.00" android:gravity="right" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TextView> </TableRow> <TableRow> <TextView android:text="Account 5" android:singleLine="false" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TextView> <TextView android:text="$400.00" android:gravity="right" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TextView> </TableRow> </TableLayout>
The code to display the layout is basic:
public class AccountBrowserTest extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.accountbrowser_test); } }
-
Paul about 12 yearsand what exactly this means ? how did you figure out that this is the solution?