常见有的有两种方式
一 最早实现的是johannilsson,GitHub项目列表,作者主页,作者博客
https://github.com/chrisbanes/Android-PullToRefresh
这种实现可以在多种控件通用,实现原理:
布局:把ListView,GrideView控件只作为一个child view 其parent View使用LinearLayout或者ViewGroup包含,这样显示刷新文字的view和ListView或GrideView同时作为同一层的child view
第一种是下拉刷新的view作为ListView内部的headerView添加到布局中
第二种是下拉刷新的view和ListView都在同一层,其parent view是LinearLayout或者ViewGroup
想到的另外的实现方式,如果环境限制不能使用headerview也就是不能使用第一种方案,然后ListView的外部又不允许添加一层即不能使用第二种方案的苛刻的要求下,
是不是可以考虑在ListView的adapter的getview方法中,针对地一个或者最后一个返回一个包装过的Layout,即把下拉刷新View和listview的第一个item包含到一个layout中,在getview 的position = 0的时候返回,List View 本身也支持item并不是同一种类型的情况