项目:letv
文件:LinearSmoothScroller.java
protected void onTargetFound(View targetView,State state,Action action) {
int dx = calculateDxTomakeVisible(targetView,getHorizontalSnapPreference());
int dy = calculateDyTomakeVisible(targetView,getVerticalSnapPreference());
int time = calculateTimeForDeceleration((int) Math.sqrt((double) ((dx * dx) + (dy * dy))));
if (time > 0) {
action.update(-dx,-dy,time,this.mDecelerateInterpolator);
}
}
项目:letv
文件:LinearSmoothScroller.java
protected void onSeekTargetStep(int dx,int dy,Action action) {
if (getChildCount() == 0) {
stop();
return;
}
this.mInterimTargetDx = clampApplyScroll(this.mInterimTargetDx,dx);
this.mInterimTargetDy = clampApplyScroll(this.mInterimTargetDy,dy);
if (this.mInterimTargetDx == 0 && this.mInterimTargetDy == 0) {
updateActionForInterimTarget(action);
}
}
项目:letv
文件:LinearSmoothScroller.java
protected void updateActionForInterimTarget(Action action) {
PointF scrollVector = computeScrollVectorForPosition(getTargetPosition());
if (scrollVector == null || (scrollVector.x == 0.0f && scrollVector.y == 0.0f)) {
Log.e(TAG,"To support smooth scrolling,you should override \nLayoutManager#computeScrollVectorForPosition.\nFalling back to instant scroll");
action.jumpTo(getTargetPosition());
stop();
return;
}
normalize(scrollVector);
this.mTargetVector = scrollVector;
this.mInterimTargetDx = (int) (scrollVector.x * 10000.0f);
this.mInterimTargetDy = (int) (scrollVector.y * 10000.0f);
action.update((int) (((float) this.mInterimTargetDx) * TARGET_SEEK_EXTRA_SCROLL_RATIO),(int) (((float) this.mInterimTargetDy) * TARGET_SEEK_EXTRA_SCROLL_RATIO),(int) (((float) calculateTimeForScrolling(10000)) * TARGET_SEEK_EXTRA_SCROLL_RATIO),this.mLinearInterpolator);
}
protected void onTargetFound(View targetView,this.mDecelerateInterpolator);
}
}
protected void onSeekTargetStep(int dx,dy);
if (this.mInterimTargetDx == 0 && this.mInterimTargetDy == 0) {
updateActionForInterimTarget(action);
}
}
protected void updateActionForInterimTarget(Action action) {
PointF scrollVector = computeScrollVectorForPosition(getTargetPosition());
if (scrollVector == null || (scrollVector.x == 0.0f && scrollVector.y == 0.0f)) {
Log.e(TAG,this.mLinearInterpolator);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。