1.需要修改引擎的 SScrollBar.cpp文件 197行
bool SScrollBar::IsNeeded() const
{
//Alter 让列表一直处于可以滑动状态
//return Track->IsNeeded();
return true;
}
原来是只有列表中元素过量时候才可以滑动,所以这里需要修改。
2. 需要修改引擎的 SScrollBox.cpp文件 890行
在bool SScrollBox::ScrollBy(const FGeometry& AllottedGeometry, float LocalScrollAmount, EAllowOverscroll Overscrolling, bool InAnimateScroll)函数内部
//OnUserScrolled.ExecuteIfBound(DesiredScrollOffset); //Alter
OnUserScrolled.ExecuteIfBound(Overscroll.GetOverscroll(AllottedGeometry)); //将scroll返回值设置为overscroll返回值
3. 设置列表属性 Allow Overscroll 为 true.
4. 绑定列表的 OnUserScrolled事件,这时候该事件的返回值就从滑动值变成了过量滑动值。
上划过量为 负数, 只需要取该值小于 阈值 的临界事件做刷新处理就好了。