Android HorizontalRefresh 一个可以左右拖动刷新的控件

欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录.
欢迎关注我们的微信公众号杨守乐
转载来源:杨守乐
本文由:【吧主的博客】分享

每日英语
life is crazy! we chase what we can’t have, and run away from what we desire the most!.
生活有的时候很疯狂,我们追逐那些无法拥有的,却放弃那些我们最需要的。

前言

博主是个android程序员,最近接了不少私活在做。想写博客也一直没时间,刚好有几个项目交工了才有时间写博客。同时这也是我写的第一篇博客,因为一直以来我都是写开发笔记的。
在做项目的时候我遇到一个需求,一个横向滚动的列表要添加拖动刷新和加载的功能。本着快速开发的原则,我就在网上找别人的控件使用。然而找到一个控件只能左拉加载,却不能同时两端拖动加载。于是就自己写了。

先上效果图

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》 image.png

创建可以滑动的容器

1、既然是个容器那就直接继承FrameLayout,如下

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》 image.png

2、添加左右两边的的拖动展示控件

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》 image.png

3、控件是添加进入了,但是还是需要计算控件的位置和控件如何摆放

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》 image.png

我将两个控件分别放在一左一右,childAt.layout(0, 0, 0, b);从这可以看出,我将控件的展示宽度设置成0px,后面拖动时就可以改变其宽度。

4、拦截触摸事件

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》 image.png

5、监听事件并改变控件宽度

《Android HorizontalRefresh 一个可以左右拖动刷新的控件》 image.png
《Android HorizontalRefresh 一个可以左右拖动刷新的控件》

小结

到此这个控件基本上就可以做完了,其中的MoreView 就是拖动出来展示的控件,这个控件可以自己随意更换展示,并不会有什么影响。其实也没什么好说的,注释里写的还是很明白的。篇幅有限,就讲到这了。附上源码地址:

https://github.com/cookieci/HorizontalRefresh/

每日掏心话
人都是被逼出来的,有了压力许多潜在的智慧就会被激发出来。所以,没有走不通的路,没有过不去的坎。相信自己,我们都有可能创造奇迹!

    原文作者:吧主
    原文地址: https://www.jianshu.com/p/fbc66546dc2f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞