ListView控件的事件监听问题,以及如何获取滑动位置的百分比

1.UI界面初始化完毕,此时我没有进行滚到操作,但是会监听到SCROLLVIEW_EVENT_SCROLLING 事件
请问这是什么原因?
2.ListView控件如何获取滑动当前位置的百分比,如同Slider控件的getPercent()的方法

你是否对listview有操作呢?

你可以根据getInnerContainerSize和内容的位置计算百分比。

我没有对listview 进行任何操作呀,界面刚打开就会莫名其妙的监听到滑动事件,这其实也没大问题,关键是此时获取的内容位置 为底部的,导致我计算的位置百分比是100%,实际为0%才对

等我再主动滑动后,获取的内容位置才正确,很奇怪

void WikiUILayer::listScrollEvent(Ref *pSender, ScrollviewEventType type)
{
//初始化完后会出现percent为100问题,暂时采用该方法屏蔽
if(m_isInitScroll)
{
m_isInitScroll = false;
return;
}

if (type == SCROLLVIEW_EVENT_SCROLLING)
{
    ListView* pListView = dynamic_cast<ListView*>(m_pRootPanel->getChildByName("ListView"));
    Layout* pInner = pListView->getInnerContainer();
    float listheight  = pListView->getLayoutSize().height - pInner->getSize().height;
    float percent = (pInner->getPositionY()/listheight)*100.0f;
    if(percent>100.0f &&percent <0) return;

    Slider* pSliderControl = dynamic_cast<Slider*>(m_pRootPanel->getChildByName("slider"));
    pSliderControl->setPercent(100-percent);
    
}

}