0
前段時間我開始爲我的目的寫一些列表視圖,昨天我因滾動行爲發生了一些奇怪的事情而感到沮喪。 我已經閱讀了默認的android.widget.Scroller
類實現的源代碼,並注意到事情比他們看起來更簡單。有運動學定律被當作石頭。不幸的是,當我決定增加一些點的減速時,我注意到當前的速度並不總是正確計算。在回顧Scroller源代碼之後,我意識到當前的速度總是錯誤地計算出來的。有計算的滾動條的當前速度的隱伏方法:Android Scroller:當前速度計算
/**
* @hide
* Returns the current velocity.
*
* @return The original velocity less the deceleration. Result may be
* negative.
*/
public float getCurrVelocity() {
return mVelocity - mDeceleration * timePassed()/2000.0f;
}
正如你可以看到有Vfinal = Vsource - a * t/2
......但對於什麼是除以2 ??? 既然我已經改成了phisically正確的方法
public float getCurrVelocity() {
return mVelocity - mDeceleration * timePassed()/1000.0f;
}
我的影響蔓延擴散工作正常。
所以問題是爲什麼除以2?或者這只是一個錯誤,因爲這種方法是隱藏的,並沒有在Scroller類中本地調用?