登录 立即注册
安币:
楼主: Emotion_sk
打印 上一主题 下一主题

| Android右滑关闭Activity界面功能-自定义控件实现

[复制链接]

31

主题

59

帖子

573

安币

代码手工艺人

Rank: 4

QQ达人

跳转到指定楼层
楼主
发表于 2018-2-12 19:25:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文来源:http://www.oneupabq.com/a/www.lyg.gov.cn/

重庆时时彩独胆倍投 www.oneupabq.com,同时针对该遗址的特殊性,制定了周密的发掘方案、文保方案、安保方案、后勤保障方案及宣传方案。2017年楼市怎么走?房价是涨是跌?新年伊始,楼市四大猜想浮出水面。

如果对本篇文章感兴趣,请前往,原文地址:/a/blog-278062-77072.html

# 引言 #Android右滑关闭Activity界面功能,网上已经有好多优秀的开源代码和项目,不过大部分都是结合ViewDragHelper来实现的,这里要讨论的是通过结合ValueAnimator来实现,目前我的控件只实现了从左往右(上往下)滑关闭界面。# 需求 #- 在界面上从左往右滑,View位置根据手势移动。- 只拦截左右滑动,上下方向的滑动无影响。- 子View的左右滑动事件无影响。# 预览图 #![image](http://upload-images.jianshu.io/upload_images/4111431-e94eaf9e8eb4e7f7?imageMogr2/auto-orient/strip|imageView2/2/w/1240)# 实现思路 #- SwipeBackLayout:左右滑动View- onInterceptTouchEvent:该方法只要做左右移动拦截,上下移动不拦截。- ValueAnimator:该动画只要改变SwipeBackLayout View的位置,在ACTION_UP和界面打开时调用。- ACTION_MOVE时,根据移动的X位移,修改SwipeBackLayout View的位置。# 主要代码分析 ### onFinishInflate ##![image](http://upload-images.jianshu.io/upload_images/4111431-41be0876124305a8?imageMogr2/auto-orient/strip|imageView2/2/w/1240)该方法只要实现两种方式,一种是通过布局xml文件来初始化SwipeBackLayout;另外一种是新new SwipeBackLayout。## onLayout ##![image](http://upload-images.jianshu.io/upload_images/4111431-832475c0c80d59a1?imageMogr2/auto-orient/strip|imageView2/2/w/1240)![image](http://upload-images.jianshu.io/upload_images/4111431-cae1c44ae6faf3a0?imageMogr2/auto-orient/strip|imageView2/2/w/1240)该方法只要是在初始化成功之后,修改SwipeBackLayout的位置。## onInterceptTouchEvent ##![image](http://upload-images.jianshu.io/upload_images/4111431-710c11bba7c88d43?imageMogr2/auto-orient/strip|imageView2/2/w/1240)![image](http://upload-images.jianshu.io/upload_images/4111431-b7ba883e7aedb278?imageMogr2/auto-orient/strip|imageView2/2/w/1240)该方法只要是拦截左右移动和判断是否在左右不拦截的子View集合里面。## onTouchEvent ##![image](http://upload-images.jianshu.io/upload_images/4111431-e192e291d83f3c7d?imageMogr2/auto-orient/strip|imageView2/2/w/1240)该方法只要在用户左右移动的时候,修改SwipeBackLayout的位置。![image](http://upload-images.jianshu.io/upload_images/4111431-1e520511e226d8bf?imageMogr2/auto-orient/strip|imageView2/2/w/1240)![image](http://upload-images.jianshu.io/upload_images/4111431-da9733d1fa183df3?imageMogr2/auto-orient/strip|imageView2/2/w/1240)该方法只要是ACTION_UP的时候,需要判断当前SwipeBackLayout的left位置,如果left位置小于屏幕的一半,则使用ValueAnimator动画,让SwipeBackLayout位置还原到正常位置。否则,关闭SwipeBackLayout。## dispatchDraw ##![image](http://upload-images.jianshu.io/upload_images/4111431-a7d54ab12b91058f?imageMogr2/auto-orient/strip|imageView2/2/w/1240)该方法只要是在SwipeBackLayout移动的时候,绘画阴影。# 源码 #具体的代码和调用Demo,可到源码地址处查看:[https://github.com/zhangliangming/SwipeBackLayout.git](https://github.com/zhangliangming/SwipeBackLayout.git "Android右滑关闭Activity界面控件")# 最后 #如果有问题,可到github上面留言。  继续阅读全文



想在安卓巴士找到更多优质博文,可移步博客区

如果对本篇文章感兴趣,请前往,
原文地址:
/a/blog-278062-77072.html
分享到:  QQ好友和群 QQ空间 微信
收藏收藏 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

重庆时时彩独胆倍投本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区

广告投放| 下载客户端|申请友链|手机版|站点统计|重庆时时彩独胆倍投 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说