PairScrollView

类似今日头条详情页,可以有两个Child View,并且这两个Child View都可以垂直滚动,比如 WebView+ListView

但是也不要求必须是WebViewListViewScrollView,可以是任意View。

PairScrollView主要使用canScrollVertically来判断Child View是否滚动到边缘,所以对于需要滚动的View如ListView等不是必须是PairScrollView的Direct Child View,只要这个可滚动的View的ParentView(PairScrollView的直接子View)正确实现了canScrollVertically就可以,可以参考CustomLinearLayout.java。也正因为如此,才允许Child View是任意View,因为canScrollVerticallyandroid.view.View中定义的方法。

一定要是两个Child View吗?只有一个当然也可以,那三个或更多呢?想实现也行,不过由于没用到就没做处理了。

其实对于WebView+ListView的情况把WebView当作ListView的HeaderView也可以,只是ListView就无法正确计算滚动条高度了,如果不需要滚动条显示,这种方式也可以。

Examples

如下图,上面是一个WebView,下面是一个LinearLayoutLinearLayout中竖直排列一个LinearLayout和一个ListView,通过layout_weight使滚动到ListView时上面的Toolbar一直显示在屏幕顶部。

Licence

Apache Version 2.0