稳住,这里是ROM开发!
Android 10 中引入了手势导航功能,向IOS看齐了一步,但是默认的这个侧滑返回效果实在是差强人意,效果如下:
国内各大厂商也都对此做了优化,那么我们也来优化一下吧,效果如下:
1,找到地方
说的够通俗易懂了吧,要改它,就要先找到它在哪里实现的。说实话这个还真不好找,网上有说:Android 10中手势导航为了xxx放到了Launcher中,然后通过AIDL和System UI交互。。。在Launcher中找了半天也没找到。
如果不是在Launcher中那就肯定在System UI中,一开始没有头绪,只能一(瞎)点(几)点(把)找。后来考虑到这个是拖拽效果,那就肯定跟触摸事件相关,本来想着在System UI的所有MotionEvent.ACTION_MOVE
处打断点,没想到在一个个添加断点的时候发现了EdgeBackGesturehandler.java
这个类,在其中打断了,调试果然命中了。
不过这个类是做控制用的,真正的绘制实现是在src/com/android/systemui/statusbar/phone/NavigationBarEdgePanel
里面。
NavigationBarEdgePanel
是一个自定义view,如下:
public class NavigationBarEdgePanel extends View implements NavigationEdgeBackPlugin {
...
}
既然找到了地方,那就实现一下上下滑动吧。
2,实现上下移动
默认的那个箭头显示出来以后不会跟着手势上下移动,要实现上下移动就要先知道这个视图是怎么添加上去的。
首先看一下