开发中接到了一个类似于饿了么购物车的效果
用户滑动屏幕购物车悬浮的icon执行左滑的动画;
首先逻辑思路:
1,拦击用户的滑动手势
2,判断滑动的y轴距离,设置隐藏动画;
3,手指离开屏幕后,执行显示动画,看了下饿了么显示好像有个延时的操作,这里设置一个Task就可以了;
问题:
需要展示的页面在Fragment中,而Fragment中没有dispatchTouchEvent方法;
解决办法:
这时只能从Fragment依赖的Activity入手;
在依赖的Activity中重写dispatchTouchEvent()方法;
获取手势的监听,当然具体的处理逻辑还是要放在Fragment中;
从依赖的Activity中可以获取到其中的Fragment,利用FragmentManager获取到对应的Fragment,然后用获取到的Fragment对象调用Fragment的方法;
需要监听的手势ACTION_DOWN(按下) ACTION_MOVE(移动) ACTION_UP(抬起);
完整的dispatchTouchEvent 见下图:
tabbar是项目中底部的空间 我是在选中首页的时候去处理这些事件的;
移动的距离根据图片的宽度还有margin值计算就可以了;
动画效果自己写写吧 位移动画是必须要有的,渐变设置透明度什么根据产品需求写就可以了;
有不明白的咨询~