我有一张桌子,每排有2行,有3个按钮。 如何使按钮平均填充空间。在HTML中,我会给它们33%的宽度。
你也知道我可以创建一个连续4个图像按钮作为网格布局的视图,类似于启动器。
答案 0 :(得分:37)
尝试将android:stretchColumns="*"
添加到您的<TableLayout>
代码。
答案 1 :(得分:15)
我终于在这里找到了真正的答案:http://androidadvice.blogspot.com/2010/10/tablelayout-columns-equal-width.html
此处还有一个关于stackoverflow的最小例子:https://stackoverflow.com/a/2865558/265521
示例:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<TableRow>
<Button
android:layout_width="0dip"
android:layout_height="match_parent"
android:text="Why is doing layouts on Android"
android:layout_weight="1"
/>
<Button
android:layout_width="0dip"
android:layout_height="match_parent"
android:text="so"
android:layout_weight="1"
/>
</TableRow>
<TableRow>
<Button
android:layout_width="0dip"
android:layout_height="match_parent"
android:text="damn"
android:layout_weight="1"
/>
<Button
android:layout_width="0dip"
android:layout_height="match_parent"
android:text="frustrating?"
android:layout_weight="1"
/>
</TableRow>
</TableLayout>
答案 2 :(得分:3)
将TableRow layout_width设置为fill_parent,并在每个按钮上设置layout_weight为1。
layout_weight的工作方式类似于百分比。如果您的所有商品都具有相同的数字,则它们占用相同的空间百分比。如果一个按钮的权重为2,另一个按钮的权重为1,那么第一个按钮的占用空间就会增加一倍。
如果您还没有这样做,请通过开发指南的common layouts页面做好准备,以获得布局的详细介绍。
答案 3 :(得分:0)
所以在帖子结束时,正确的方法是设置NumberOfTheColumns
:
<tablelayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="NumberOfTheColumns"/>
您可以设置所需的水平“片段”数量。如果你有3x3表:
<TableLayout
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tableLayout1"
android:stretchColumns="3">
<TableRow
android:id="@+id/tableRow1">
<TextView
android:text="@string/EventTitle"
android:id="@+id/textView1"
android:gravity="center_vertical"
android:layout_column="0" />
<EditText
android:inputType="text"
android:id="@+id/editText3"
android:layout_weight="2"
android:layout_span="2"
android:layout_column="1" />
</TableRow>
<TableRow
android:id="@+id/tableRow2">
<TextView
android:text="@string/EventDateStart"
android:id="@+id/textView1"
android:gravity="center_vertical"
android:layout_column="0" />
<EditText
android:inputType="date"
android:id="@+id/editText1"
android:layout_weight="1"
android:layout_column="1"
android:layout_width="wrap_content" />
<EditText
android:inputType="time"
android:id="@+id/editText2"
android:layout_weight="1"
android:layout_column="2"
android:layout_width="match_parent" />
</TableRow>
<TableRow
android:id="@+id/tableRow3">
<TextView
android:text="@string/EventDateEnd"
android:id="@+id/textView1"
android:gravity="center_vertical"
android:layout_column="0"
android:layout_width="match_parent" />
<EditText
android:inputType="date"
android:id="@+id/editText1"
android:layout_weight="1"
android:layout_column="1" />
<EditText
android:inputType="time"
android:id="@+id/editText2"
android:layout_weight="1"
android:layout_column="2" />
</TableRow>
<TableRow>
<TextView
android:text="@string/Description"
android:id="@+id/textView1"
android:gravity="center_vertical"
android:layout_weight="3"
android:layout_span="3"
android:layout_column="0"
android:layout_width="match_parent" />
</TableRow>
<TableRow>
<EditText
android:inputType="textMultiLine"
android:id="@+id/editText3"
android:layout_height="50dp"
android:layout_weight="3"
android:layout_span="3"
android:layout_column="0"
android:layout_width="match_parent" />
</TableRow>
</TableLayout>
在此示例中,您可以看到5x3表。您可以通过设置所需的整个表宽度的多少个来设置每个列的宽度...