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

Posted

技术标签:

【中文标题】如何在我的 Android 应用程序中使视图填充其父级的整个宽度?【英文标题】:How do I make Views fill the full width of their parent in my Android app? 【发布时间】:2011-01-25 05:23:59 【问题描述】:

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

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

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

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

到目前为止,Android 的整体文档都很棒,但是有一些像这样的场景,我碰到了一堵看不见的墙!感谢大家的帮助!

【问题讨论】:

【参考方案1】:

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

欲了解更多信息 - http://developer.android.com/guide/tutorials/views/hello-tablelayout.html

【讨论】:

啊,在 API 中查找,值“*”(或从 0 开始的以逗号分隔的列列表)有效。谢谢!【参考方案2】:

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

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

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

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

3 tableRow 的表格布局示例,每个表格有 2 个视图:

不设置android:stretchColumns

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

android:stretchColumns="*"

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

android:stretchColumns="0"

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

android:stretchColumns="1"

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

【讨论】:

非常好的答案。 这一定是公认的,因为他为所有可能的方式提供了均匀的视觉表示。【参考方案3】:

在 TableRow 的定义中试试这个:

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

【讨论】:

看起来列索引从 0 开始,但是是的,就是这样!抱歉,我希望我能选择两个正确的答案;)

以上是关于如何在我的 Android 应用程序中使视图填充其父级的整个宽度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android的文本视图中使电话号码可点击

我应该如何自动填充一个字段并在 django 中使其只读?

无法在我的 android 应用程序中使 proguard 工作

如何在wpf应用程序中使gridview成为树视图的子元素

如何防止工作表在 SwiftUI 中使其后面的视图变暗或删除不必要的填充?

如何在 Codeigniter 中使视图“可移植”?