2017-06-23 61 views
-1

我只想在用戶滾動到某個位置時調用一個函數。目前,我做了以下內容:如何僅在滾動到某個位置時調用函數?

view.addOnScrollChangeListener(){ 
    int[] locA = v1.getLocationOnScreen(); // it gives x & y location 
    int[] locB = v2.getLocationOnScreen(); // it gives x & y location 
    if(locA[1] == threshold) callFunctionA(); 
    if(locB[1] == threshold) callFunctionB(); 
} 

問題是,它從來沒有要求callFunctionA() or callFunctionB如果用戶滾動太快。如何解決這個問題?

+0

您是否使用scrollview作爲滾動容器? – Krish

+0

是的,v1和v2是滾動視圖內的視圖 – jquery404

+0

您可以將兩個視圖添加到recyclerview並獲取滾動位置 –

回答

0

這應該工作。如果您滾動經過某個特定點,則會觸發,如果再次在閾值之前滾動,則會再次發生。

boolean funcACalled = false; 
boolean funcBCalled = false; 
view.addOnScrollChangeListener(){ 
    int[] locA = v1.getLocationOnScreen(); // it gives x & y location 
    int[] locB = v2.getLocationOnScreen(); // it gives x & y location 
    if(locA[1] > threshold && !funcACalled){ 
     callFunctionA(); 
     funcACalled = true; 
    } 
    if(locB[1] > threshold && !funcBCalled){ 
     callFunctionB(); 
     funcBCalled = true; 
    } 
    if(locA[1] < threshold) funcACalled = false; 
    if(locB[1] < threshold) funcBCalled = false; 
} 
+0

hmm其不工作 – jquery404

相關問題