【发布时间】:2011-10-30 16:05:39
【问题描述】:
我的网格有很多行(例如 1 000 000)。每行的高度可能是唯一的。但大多数行具有相同的高度。所以不可能确定每行的高度并获得总网格高度。
我需要在这个网格上实现平滑的垂直滚动,不仅仅是跳过行,因为行可以高于可见区域。
我的解决办法是:
- 获取行数
- 每行分为 10 个部分
- => 滚动条最大值为(行数)*10
- 从滚动位置我得到:
- 第一个可见行 =(滚动位置)/10
- 第一个可见行移位 =(滚动位置)% 10
如果所有行都具有 +- 相同的高度,则此工作正常。如果有一行的高度为 500 像素,而另一行的高度为 25 像素,则滚动看起来很糟糕。
有没有人建议如何更好地解决这个问题?
【问题讨论】:
标签: c++ user-interface scroll grid scrollbar