Android在TableLayout中均匀拉伸列


74

我在我的android应用程序中显示一个值表,并且希望这些列按照size均匀分布,而不是根据内容进行大小调整。

一直在使用stretchColumns,但无法找出正确的组合,有什么想法吗?


StretchColumns有什么问题?某些列是否“溢出”?
杰里米·洛根

我希望它们的大小都相同,但是它们之间似乎变得不同。
Drahcir

1
我知道...我想弄清楚的是,其中一个视图是否大于您要为其列分配的区域。
杰里米·洛根

同样在这里,我试图找出如何硬限制每列的宽度,并将其设置为与其余部分保持一致,并使每列的内容拉伸到其分配的宽度的最大值,而不是更宽。
Artem Russakovskii

Answers:


165

我遇到了同样的问题-我始终只在中输入一个数字android:stretchColumns,但是您必须输入所有应拉伸的列。因此,如果您有三列,则必须编写:

android:stretchColumns="0,1,2"

或写:

android:stretchColumns="*"

然后,所有列将具有相同的大小。提醒一下,android:stretchColumnsTableLayout元素的属性。


我试图在Android中显示7 col值,但从类中动态显示...但是我在android ph上安装时。并保持pH值。它不能拉伸列以及xml静态。
Siten 2011年

1
以及我们如何在运行时执行此操作?
Ewoks

3
更新:pTable.setColumnStretchable(1,true); pTable.setColumnShrinkable(0,true);
Ewoks

在列频繁更改其大小之前,这似乎是正确的
mr5 2015年

20

您需要为表格行中的每个视图都设置BOTHandroid:layout_width="0dip"android:layout_weight="1"。我认为这是可行的,因为权重决定了各个视图所使用的行中EMPTY SPACE的比例,并且由于所有视图的宽度都设置为0dip,所以整行都是空白空间,因此权重相等时,视图都是分配了整个宽度的相同比例。



1

您可以通过列内容的大小来控制它们的大小。如果您希望它们的大小都相同,请android:layout_width在适当的单元格中通过进行设置。


3
如果内容是动态的,我不知道大小布局宽度将无法正常工作。是否有任何其他的方式
了Arul牛逼

-1

谁仍在寻找解决方案,对我来说:设置可伸缩和可伸缩的列就可以了。我遇到了与OP几乎相同的问题。


对我来说,它将您的答案和linitbuff的答案结合在一起。
tom_mai78101
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.