不積跬步無以至千里
一.前摘
我們玩手機的經常的一個行爲就是亮屏,向上滑動屏幕然後到解鎖界面輸入密碼然後解鎖,而今天我們遇到的這個問題就是向上嘗試滑動了好幾次都沒有到鎖屏解鎖界面,這個問題會讓用戶非常苦惱,這不是耽誤我的時間嗎?因此這個問題對用戶的產品體驗影響還是很大的。因此我們今天就要解決這個問題。
二.分析
這裏滑動解鎖的邏輯在哪呢?通過尋找代碼邏輯發現代碼邏輯在此處。(如果不想看分析,可以直接看最後的答案☺)
1.代碼路徑如下:
app/src/com/android/systemui/statusbar/phone/PanelView.java
private void endMotionEvent(MotionEvent event, float x, float y, boolean forceCancel) {
mTrackingPointer = -1;
if ((mTracking && mTouchSlopExceeded)
|| Math.abs(x - mInitialTouchX) > mTouchSlop
|| Math.abs(y - mInitialTouchY) > mTouchSlop
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL
|| forceCancel) {
mVelocityTracker.computeCurrentVelocity(1000);
float vel = mVelocityTracker.getYVelocity();
float vectorVel = (float) Math.hypot(