[不完美的解决方案] 虚拟列表的自动调整列表项目大小行为和滑动条显示没有互动
普通的列表,比如一个单列竖排的列表,在列表高度或者列表成员增减时伴随滑动条显示或者隐藏,在 FairyGUI 编辑器内可以观察到列表成员的宽度会自适应滑动条的显隐,有滑动条就窄一点,没有就宽一点。
但是如果设置列表为虚拟列表,无论列表是否显示滑动条,只要列表可能出现滑动条,列表项目就一定会为滑动条留出空间,哪怕现在不需要显示滑动条。
似乎是 GList::RefreshVirtualList 这个方法需要做的事,它的实现和 GList::UpdateBounds 的实现不同的地方是前者完全没有访问 GList::scrollPane.vtScrollBar.width 这个值,但我一时间不知道怎么修。
FairyGUI 运行时是 5.1.0
但是如果设置列表为虚拟列表,无论列表是否显示滑动条,只要列表可能出现滑动条,列表项目就一定会为滑动条留出空间,哪怕现在不需要显示滑动条。
似乎是 GList::RefreshVirtualList 这个方法需要做的事,它的实现和 GList::UpdateBounds 的实现不同的地方是前者完全没有访问 GList::scrollPane.vtScrollBar.width 这个值,但我一时间不知道怎么修。
FairyGUI 运行时是 5.1.0
没有找到相关结果
已邀请:
2 个回复
谷主
赞同来自:
可选的方案是利用滚动条的float特性,稍微牺牲一点item的右边缘。
Ichi
赞同来自:
思路是在 itemRenderer 之前增加一个阶段修改最终绘制的控件的尺寸,而在查看源代码之后发现其实它有这个阶段。
修改过的 GList.cs 放在附件里,如果还有人需要的话。