如何在我的Android应用程序中使视图填充其父级的全部宽度?

时间:2010-03-08 23:35:26

标签: android layout width parent

我为我的一个活动定义了以下布局:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/TableLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow android:id="@+id/TableRow01" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <EditText android:text="Resource Name" android:id="@+id/ResourceName" android:lines="1" android:isScrollContainer="false"></EditText>
    </TableRow>
    <TableRow android:id="@+id/TableRow02" android:layout_height="wrap_content" android:layout_width="fill_parent">
        <Button android:id="@+id/Tile" android:text="Tile"></Button>
    </TableRow>
</TableLayout>

布局呈现几乎正确,唯一的问题是我的文本框和我的按钮没有占据各自行的整个宽度。

我已尝试为布局宽度属性指定fill_parent,但无济于事,它们仍占据屏幕的大约一半。

到目前为止Android的整体文档一直都很棒,但有一些情况就像这样,我碰到了一堵无形的墙!谢谢你的帮助!

3 个答案:

答案 0 :(得分:44)

尝试使用android:stretchColumns="0"(当您定义TableLayout时)或者您想要拉伸的列的索引。

有关详情,请访问http://developer.android.com/guide/tutorials/views/hello-tablelayout.html

答案 1 :(得分:13)

在tableRow视图中使用android:layout_width="match_parent"

现在,您可以在TableLayout中将参数android:stretchColumns设置为:

Value "*"个视图将具有相同的宽度,并将填充占据相同空间的行

Value "0" or other integer - &gt;第一个或与行中的整数对应的元素将填充该行。另一个视图的宽度与wrap_content

的宽度相同

tablelayout为3 tableRow的示例,每个tableRow包含2个视图:

未设置android:stretchColumns

[|TextView|EditText|          ]
[|TextView|EditText|          ]
[|TextView|EditText|          ]

机器人:stretchColumns =&#34; *&#34;

[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]

机器人:stretchColumns =&#34; 0&#34;

[|    TextView      |EditText|]
[|    TextView      |EditText|]
[|    TextView      |EditText|]

机器人:stretchColumns =&#34; 1&#34;

[|TextView|      EditText    |]
[|TextView|      EditText    |]
[|TextView|      EditText    |]

答案 2 :(得分:9)

在TableRow的定义中试试这个:

<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">