0

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

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

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

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

我尝试了很多东西,以至于我无法在这里解释所有内容,但是如果您对如何做有一些想法,请说。我在这个问题上已经3天了,这让我发疯了。

4

1 回答 1

0

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

在创建简化类来演示问题时,我发现实际上一切正常。因此,我将简化的类与我的项目的类进行了比较,并对其进行了修改,直到它们几乎相同。

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

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

于 2013-03-25T15:33:07.310 回答