如何调整行的大小以便它们始终填充父级的整个高度?

时间:2013-02-18 23:07:38

标签: android resize android-linearlayout

我有一个固定大小的父LinearLayout。在onCreate()我加载数据并动态地向父布局添加行。加载1-10行的任何地方。我希望行总是填充父级,例如,如果我有2行,则每行应该具有父级的50%高度(50%+ 50%= 100%)。如果我有3行,每行应该使用33%的父高等。

我尝试使用OnGlobalLayoutListener来获取父级的高度并动态调整行的大小,不幸的是,当我运行应用程序时,调整大小最多是任意的。有时行会调整大小,有时候会在明显延迟大约0.5秒后调整大小。

有没有更好的方法来实现这一目标?也许已经在XML中使用layout_weight(假设行只在代码中添加了行)?

1 个答案:

答案 0 :(得分:1)

您可以通过将父LinearLayout上的weight sum设置为其中包含的行数来执行此操作。如果这是一个垂直的项目列表,那么您将每行的高度设置为0并将其weight设置为1.如果这是项目的水平列表,则执行相同操作但将宽度设置为0并设置重量为1。