![]() |
1
4
在Android中,只有在渲染完成后,视图才被分配宽度和高度。因此,除非列表至少呈现一次,否则无法获得listemheight。解决问题的方法可能是设置列表项的最小高度,这样至少可以使用某些内容,而不是硬编码高度和宽度。 |
![]() |
2
42
试试这个,它会对你有用的。
|
![]() |
3
11
的优化版本
|
![]() |
4
2
正如Hariseldon78所指出的,这些解决方案都不能解决实际问题,即在呈现列表项行之前确定列表项行的高度。我有同样的问题,因为我想将一些图像缩放到ListView项目行的高度,而不想将它们缩放到固定值。如果主题导致行布局其他部分中的文本高度不同,那么我需要高度,以便在适配器的getview例程中可以相应地调整bmap的大小。我一直在努力解决GetHeight和所有测量高度报告为零的问题,直到行被呈现出来。对我来说,后来看到正确的高度太晚了。 我的解决方案是第一次通过getView创建OnlyoutChangedListener(),只为第0行创建。一旦第一个位置(0)的getview完成执行,监听器将立即触发,此时“bottom”参数将告诉您行的高度。我将它记录在一个自定义适配器类变量中,这样它就可以作为高度参数使用,而不必再次获取高度。 侦听器在执行过程中注销自身。这为第1-n行提供了适当的高度,但不为第0行提供。对于第零排,我做了一些非常糟糕的事情。在设置了另一个自定义适配器类变量来控制递归之后,我的侦听器再次调用了第0行的getview。第二次运行getview(0)时,它将不会设置侦听器,并且会找到一个有效的高度参数来操作,所有参数都是好的。 下面是代码-不需要告诉我这有多糟糕-如果Android不必让它如此难以判断我创建的视图有多大,当我完成填充视图的时候,基于表面的渲染参数,我不必做这种丑陋,但它工作。抱歉,如果代码格式太差…
|
![]() |
FranticFronk · Tkinter单选按钮在已选择时执行命令 8 月前 |
![]() |
Kumkuatte · 如何将UI元素对齐到Unity中的左侧位置 1 年前 |
![]() |
Calax · GUI不显示所有组件(C++) 1 年前 |
![]() |
trassert · python flet容器 1 年前 |
![]() |
zadisk8 · 带有Q拆分器和多级选项卡的PyQt5 1 年前 |
![]() |
Patrick Visi · Zitadel日常创建服务用户 1 年前 |