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

Ale*_*zzi 16 layout android parent width

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

<?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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 47

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

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

  • 啊,在API中查找,值"*"(或从0开始的以逗号分隔的列列表)起作用.谢谢! (3认同)

小智 18

使用android:layout_width="match_parent"您的tablerow的意见.

现在,您在TableLayout中有不同的可能性将参数设置android:stretchColumns为:

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

Value "0" or other integer - >第一个或与行中的整数对应的元素将填充该行.另一个视图的宽度与wrap_content的宽度相同

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

没有设置android:stretchColumns:

[|TextView|EditText|          ]
[|TextView|EditText|          ]
[|TextView|EditText|          ]
Run Code Online (Sandbox Code Playgroud)

机器人:stretchColumns = "*"

[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]
[|  TextView    |  EditText  |]
Run Code Online (Sandbox Code Playgroud)

机器人:stretchColumns = "0"

[|    TextView      |EditText|]
[|    TextView      |EditText|]
[|    TextView      |EditText|]
Run Code Online (Sandbox Code Playgroud)

机器人:stretchColumns = "1"

[|TextView|      EditText    |]
[|TextView|      EditText    |]
[|TextView|      EditText    |]
Run Code Online (Sandbox Code Playgroud)


Sep*_*phy 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">
Run Code Online (Sandbox Code Playgroud)