问题由来
- 使用Log Viewer Pro时
- 当某一行日志热别长的时候
- 滑动条异常
当ListView面板显示不下一个Item时 滑动条异常
- 查看源码 发现有这个逻辑
- STableViewBase类Tick函数
if (ReGenerateResults.ExactNumLinesOnScreen < 1.0f)
{
// We are be observing a single row which is larger than the available visible area, so we should calculate thumb size based on that
//我们正在观察一个大于可用可见区域的单行,所以我们应该根据它计算拇指大小
const double VisibleSizeFraction = AllottedGeometry.GetLocalSize().Y / ReGenerateResults.LengthOfGeneratedItems;
const double ThumbSizeFraction = FMath::Min(VisibleSizeFraction, 1.0);
const double OffsetFraction = CurrentScrollOffset / NumItemsBeingObserved;
ScrollBar->SetState( OffsetFraction, ThumbSizeFraction );
}
- 设计应该是当listview可显示区域放不下一行 滑动条进度按当前行计算
- 感觉是古老的设计方法
解决方案
- 注释这几行
- 加个开关处理判断
- 重写STableViewBase类