在ViewGroup中添加确切数量的元素

时间:2013-03-22 11:35:03

标签: android android-layout android-linearlayout viewgroup

我认为这是我整个程序员生命中第一次提出问题。之前我总是能够自己或在互联网上找到解决方案。但在这里,我放弃......

关于tittle,当然ViewGroup是抽象的,但想法是有一个元素可以处理“列表”中的许多其他子元素。

这是问题所在。想象一下,您拥有ViewGroup(或其他后代类),并且您希望在此空间中添加尽可能多的元素,而无需滚动条或某些元素被截断。元素将是一个在另一个之下。 例如,如果4.65元素可以放在这个自由空间中,那么只会添加4个元素。因为添加第5个将导致截断元素,因为没有足够的空间来添加5个元素。

我尝试了一些事情,比如计算(在这种情况下)LinearLayour中可用的空间,并添加一个“pilot”元素来测量它,然后知道我可以添加多少其他元素。但这不起作用。 “pilot”元素返回的高度不正确。

我尝试了很多东西,我无法在这里解释一切,但如果你对如何做到这一点有所了解,那就说吧。 我已经有3天了解这个问题,这让我很疯狂。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。我不能在这里解释它,因为我使用自定义的自制组件,但我能够找到问题的根源。

在创建简化类来演示问题时,我发现事实上一切都正常。所以我将简化类与我的项目进行了比较,然后将它们修改为几乎相同。

我找到了问题的根源,即使我不明白为什么会出现问题。实际上,如果在执行计算方法(导频元素,空间计算等)之前通过常量设置文本大小,则它可以完美地工作。 如果您通过调用访问器(setSize)来修改大小,甚至在进行计算之前就知道可以添加多少元素,它将无法正常工作。

这真的很奇怪,因为我在进行计算之前修改了textSize。它应该工作相同。 无论如何。我找到了一个使用Threads / Handlers来解决我的问题的技巧。很难找到问题,但无法理解为什么会发生这种情况。