0

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

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

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

4

1 回答 1

1

您可以通过将父 LinearLayout 上的权重总和设置为您在其中的行数来做到这一点。如果这是一个垂直的项目列表,则将每行的高度设置为 0,并将其权重设置为 1。如果这是一个水平的项目列表,您也可以这样做,但将宽度设置为 0,并将权重设置为 1 .

于 2013-02-18T23:17:45.227 回答