Launcher2桌面循环滑动

探讨并解决Launcher2循环滑动时无法实现无缝连接的问题,在PagedView.java文件中进行代码修改,通过判断滑动方向实现从第一页到最后一页或从最后一页返回到第一页的无缝过渡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Launcher2循环滑动的问题,研究了有一段时间。

Launcher2PagedView.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();
				}


以上代码实现了—— 在第一页向右滑的话,它会经过中间几页到达最后一页;而在最后一页向左滑动的话,效果也是经过中间几页到达第一页。

但是我要实现无缝连接,目前网上都没有找到合适的解决方法。。

请实现了效果的朋友告知下~


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值