launcher功能入口(二)

前言

本篇文章补充一下之前https://blog.csdn.net/a396604593/article/details/123487805文章中的一些没填上的坑。
此代码基于Android 12
上篇:Launcher功能入口
本篇:launcher功能入口(二)
下篇:launcher功能入口(三)

7、三方应用界面滑动底部,切换recentTask

三方应用手势处理都在
packages\apps\Launcher3\quickstep\src\com\android\quickstep\inputconsumers\OtherActivityInputConsumer.java
onMotionEvent中
区别是:上滑回到home、上滑停顿回到recent、左右滑动底部切换三方应用
这几种都是松手时判断手势速度和方向得出不同的结束状态。

涉及到几个点
1、滑动事件是谁在处理

recentView继承PagedView.java,跟手的滑动在onTouchEvent的MotionEvent.ACTION_MOVE中处理mOrientationHandler.set(this, VIEW_SCROLL_BY, movedDelta);
Int2DAction<View> VIEW_SCROLL_BY = View::scrollBy;

看上去和桌面的左右滑动是一个地方在scroll
2、滑动时task的大小是哪里设置的
3、滑动结束后切换到下一个应用界面
https://blog.csdn.net/a396604593/article/details/129730553中的handleNormalGestureEnd
4、滑动动画在哪里创建的
https://blog.csdn.net/a396604593/article/details/129730553中的createWindowAnimationToHome
5、触摸事件怎么传递到recent view的

quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewTouchController.java
quickstep/src/com/android/quickstep/inputconsumers/OtherActivityInputConsumer.java
quickstep/src/com/android/quickstep/TouchInteractionService.java
quickstep/src/com/android/quickstep/views/RecentsView.java
src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
quickstep/src/com/android/quickstep/BaseActivityInterface.java

先简单记录几个点
1、recent界面task显示大小

packages\apps\Launcher3\quickstep\src\com\android\quickstep\views\RecentsView.java
loadVisibleTaskData 加载可见的task
getTaskSize 获取task大小
packages\apps\Launcher3\quickstep\src\com\android\quickstep\BaseActivityInterface.java
calculateTaskSize 计算task大小
calculateTaskSizeInternal 计算task大小

2、快速切换手势
在launcher界面快速切换进入第一个task

packages\apps\Launcher3\quickstep\src\com\android\quickstep\TouchInteractionService.java
onInputEvent中mUncheckedConsumer.onMotionEvent(event);处理触摸事件分发
packages\apps\Launcher3\quickstep\src\com\android\quickstep\inputconsumers\OverviewInputConsumer.java
onMotionEvent

在三方应用界面快速切换

packages\apps\Launcher3\quickstep\src\com\android\quickstep\TouchInteractionService.java
onInputEvent中mUncheckedConsumer.onMotionEvent(event);处理触摸事件分发
packages\apps\Launcher3\quickstep\src\com\android\quickstep\inputconsumers\OtherActivityInputConsumer.java
onMotionEvent

松手后切换到下一页还是原应用界面

packages\apps\Launcher3\quickstep\src\com\android\quickstep\AbsSwipeUpHandler.java
handleNormalGestureEnd 手势结束状态处理
calculateEndTarget 计算切页结果
16、recent界面 上滑、下滑某一个task动画

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值