Layout File
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TableLayout android:layout_width="match_parent"android:layout_height="match_parent"><TableRow><EditText android:id="@+id/et_led" android:layout_width="fill_parent"android:digits="1234567890.+-*/=%\n\t()" android:text=""android:layout_span="4" /></TableRow><TableRow><Button android:text="(" android:id="@+id/btn_LeftParenthesis"></Button><Button android:text=")" android:id="@+id/btn_RightParenthesis"></Button><Button android:text="*" android:id="@+id/btn_x"></Button><Button android:text="back" android:id="@+id/btn_back"></Button></TableRow><TableRow><Button android:text="7" android:id="@+id/btn_7"></Button><Button android:text="8" android:id="@+id/btn_8"></Button><Button android:text="9" android:id="@+id/btn_9"></Button><Button android:text="%" android:id="@+id/btn_mod"></Button></TableRow><TableRow><Button android:text="4" android:id="@+id/btn_4"></Button><Button android:text="5" android:id="@+id/btn_5"></Button><Button android:text="6" android:id="@+id/btn_6"></Button><Button android:text="/" android:id="@+id/btn_div"></Button></TableRow><TableRow><Button android:text="1" android:id="@+id/btn_1"></Button><Button android:text="2" android:id="@+id/btn_2"></Button><Button android:text="3" android:id="@+id/btn_3"></Button><Button android:text="-" android:id="@+id/btn_sub"></Button></TableRow><TableRow><Button android:text="0" android:id="@+id/btn_0"></Button><Button android:text="." android:id="@+id/btn_dot"></Button><Button android:text="+" android:id="@+id/btn_plus"></Button><Button android:text="=" android:id="@+id/btn_equal"></Button></TableRow></TableLayout></LinearLayout>
Layout effect:
Obviously, this does not meet our expectations. The following example uses Android: stretchcolumns to automatically stretch
Here we simply add an attribute Android: stretchcolumns = "*" to tablelayout, indicating that all columns are automatically stretched to adapt to the screen width.
Layout Effect
The value can be a number or *. Note that the number starts from 0, that is, Android: stretchcolumns = "1" is the second column of all rows in tablelayout.
We can see that the buttons in the fourth column are wider than those in other columns. What if we want them to be the same?
A simple method:
Based on automatic stretching, set the width of each column to the same, for example, the following code:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><TableLayout android:layout_width="match_parent"android:layout_height="match_parent" android:stretchColumns="*"><TableRow><EditText android:id="@+id/et_led" android:layout_width="fill_parent"android:digits="1234567890.+-*/=%\n\t()" android:text=""android:layout_span="4" /></TableRow><TableRow><Button android:text="(" android:id="@+id/btn_LeftParenthesis"android:layout_width="1dip"></Button><Button android:text=")" android:id="@+id/btn_RightParenthesis"android:layout_width="1dip"></Button><Button android:text="*" android:id="@+id/btn_x"android:layout_width="1dip"></Button><Button android:text="back" android:id="@+id/btn_back"android:layout_width="1dip"></Button></TableRow><TableRow><Button android:text="7" android:id="@+id/btn_7"></Button><Button android:text="8" android:id="@+id/btn_8"></Button><Button android:text="9" android:id="@+id/btn_9"></Button><Button android:text="%" android:id="@+id/btn_mod"></Button></TableRow><TableRow><Button android:text="4" android:id="@+id/btn_4"></Button><Button android:text="5" android:id="@+id/btn_5"></Button><Button android:text="6" android:id="@+id/btn_6"></Button><Button android:text="/" android:id="@+id/btn_div"></Button></TableRow><TableRow><Button android:text="1" android:id="@+id/btn_1"></Button><Button android:text="2" android:id="@+id/btn_2"></Button><Button android:text="3" android:id="@+id/btn_3"></Button><Button android:text="-" android:id="@+id/btn_sub"></Button></TableRow><TableRow><Button android:text="0" android:id="@+id/btn_0"></Button><Button android:text="." android:id="@+id/btn_dot"></Button><Button android:text="+" android:id="@+id/btn_plus"></Button><Button android:text="=" android:id="@+id/btn_equal"></Button></TableRow></TableLayout></LinearLayout>
At this time, the effect becomes:
Note that there are two more settings than the original one.
Android: layout_width = "1dip"And Android: stretchcolumns = "*"