仿腾讯漫画目录页实现

来源:互联网 发布:形容男生的网络词语 编辑:程序博客网 时间:2024/04/30 22:24

前言: 因为之前项目中需要用到类似腾讯漫画目录页的效果,所以就做了一些研究,最开始想使用CoordinatorLayout来实现。最后因为这里 我这写的一些问题,所以达不到腾讯漫画目录页的效果,所以我就研究了一下腾讯漫画的实现方式。

之前使用的CoordinatorLayout实现的方式,出现的问题主要是:头部View和子View之前的滚动顺序和fling事件传递的问题,具体请看这里。

但是腾讯漫画目录页的整体上的效果是非常不错的,没有出现卡顿或者头部view和子view滚动顺序不对的问题。

腾讯漫画目录页的实现方式:

整体页面结构:
这里写图片描述
整个页面黑色的框代表ViewPager,红色的框代表头部View。可以看到ViewPager是覆盖整个页面的,而头部View是覆盖在Viewpager上面的。viewpager中的子Fragment 根View中使用能滚动的View,例如ListView、RecyclerView。然后自定义头部View,放出一个可以在外部滚动头部View的接口。在主Activity中将滚动头部View的接口,传递给viewpager中的Fragment里面。通过Fragment根View的滚动监听来调用头部View的滚动的接口。并通过View.setPadding(int left, int top, int right, int bottom); 设置Fragment中根View的PaddingTop高度,防止头部View遮挡住Fragment中根View。

这样由于整个页面的滚动都是由Fragment中的可滚动View来引动的,所以不会出现滑动卡顿和viewpager与头部View之间滑动事件传递不流畅的问题。

当然这样也出现了一个问题,就是如果需要滚动头部View的时候整个页面跟着滚动,所以当你左右滑动头部View的时候,viewpager也会跟着左右切换。这种效果我觉的并不是非常符合逻辑的。至少腾讯漫画v6.4.6事这样的。

完整的项目代码:https://github.com/BigggFish/NestedScrollLayoutDemo

0 0
原创粉丝点击