开源控件DragTopLayout分析与使用指南

2016-04-27  本文已影响2046人  好奇的小刺猬

Github地址:
https://github.com/chenupt/DragTopLayout
最近项目重要用到这个效果,但是在RecyclerView和ViewPager结合使用的时候状态总是不对,我修改了上面的Demo中使用时的部分bug,并添加Viewpager+RecyclerView的使用范例:
https://github.com/maoranbian/ExtraDragTopLayout
增加的例子从主页右上角的菜单键点开,最后两个就是了,名称为ViewpagerRecyclerActivity和StripTabHideActivity。其中 ViewpagerRecyclerActivity更像新浪微博的个人主页,两个tab中的列表只要有一个达到顶部并使得topView展开,另一个tab中的列表自动滚动到第一条。 StripTabHideActivity将tab切换放在了topView里。


1. 知识预备

2.控件思路分析

3.app使用中偶现问题

对偶现问题的调查-从代码角度;从现象角度--如何必现或尽最大可能重现
Q1:各分页面fagment各自滑动后点击tab切换,topview状态或者fragment的滑动状态不对。
Q2:实现新浪微博个人主页的效果,有一个页面滑动到顶部且引起topview显示后,另一个页面也滑动到顶部。
Q3:快速上下暴力滑动时topview没有收缩。
Q4:topView和contentView边缘临界滑动,topView不隐藏。
解决方法:
关键解决实时获取正确的指示变量并设置到页面的DragTopLayout实例中。

// return child == dragContentView
// 修改原因:加强条件,dragContentView可以移动的前提也是shouldIntercept==true
return child == dragContentView && shouldIntercept;

4.使用DragTopLayout的步骤:

1.在使用该DragTopLayout的主类里,步骤:

2.包含的Fragment:

5.引用文档

上一篇 下一篇

猜你喜欢

热点阅读