Launcher2循环滑动的问题,研究了有一段时间。
在Launcher2的PagedView.java文件中onTouchEvent(MotionEventev)方法里的case MotionEvent.ACTION_UP:下面第L1482行修改代码为:
if (((isSignificantMove && !isDeltaXLeft && !isFling) || (isFling && !isVelocityXLeft))) {//velocityX to right
if(mCurrentPage > 0){
finalPage = returnToOriginalPage ? mCurrentPage : mCurrentPage - 1;
snapToPageWithVelocity(finalPage, velocityX);
}
else if(mCurrentPage == 0){
finalPage = returnToOriginalPage ? mCurrentPage : (getChildCount() - 1);
snapToPageWithVelocity(finalPage, velocityX);
}
}
else if (((isSignificantMove && isDeltaXLeft && !isFling) || (isFling && isVelocityXLeft))) {//velocityX to left
if (mCurrentPage < getChildCount() - 1) {
finalPage = returnToOriginalPage ? mCurrentPage : mCurrentPage + 1;
snapToPageWithVelocity(finalPage, velocityX);
}
else if (mCurrentPage == getChildCount() - 1) {
finalPage = returnToOriginalPage ? mCurrentPage : 0;
snapToPageWithVelocity(finalPage, velocityX);
}
}
else {
snapToDestination();
}
以上代码实现了—— 在第一页向右滑的话,它会经过中间几页到达最后一页;而在最后一页向左滑动的话,效果也是经过中间几页到达第一页。
但是我要实现无缝连接,目前网上都没有找到合适的解决方法。。
请实现了效果的朋友告知下~