稳住,这里是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,实现上下移动
默认的那个箭头显示出来以后不会跟着手势上下移动,要实现上下移动就要先知道这个视图是怎么添加上去的。
首先看一下

本文介绍了如何优化Android 10的手势导航侧滑返回效果,包括找到实现手势导航的关键代码位置,实现视图的上下移动,模拟iOS的拖拽凸起效果,以及美化默认箭头。通过自定义View,处理触摸事件和绘制,最终达到满意的交互体验。
最低0.47元/天 解锁文章
1089

被折叠的 条评论
为什么被折叠?



