今晚在做一个demo时用到了nestedscrollview嵌套几个viewpager+fragment的组合,fragment里有各种图片和recyclerview;
问题来了:NestedScrollView直接嵌套ViewPager后,如果viewPager中的fragment高度太长,会发现各个方向都无法滑动,于是我首先用了网上流行的重写viewpager的方法:
创建一个WrapContentHeightViewPager继承viewpager
此时发现倒是可以滑动了,可是这种方法的viewpager并不是智能判断viewpager的高度,比如我的viewpager里第一个fragment高度和后面的fragment高度根本不一样,这时就会出现短一些的fragment的高度被强行设置到和更高的那个fragment高度一样的情况,所以这样根本是治标不治本,pass;
还有给nestedscrollview添加fillviewport(true)属性的方法,这种方法虽然recyclerview能够滑动了,但是viewpager里包含的图片却无法跟着一起滑动,还是没能达到要求。
还有的解决方式更奇葩,让手动设置viewpager高度,这样同样也只能适用于fragment高度相同的情况。
最后,链接 中的一个答案是这样解决的:直接将nestedscrollview嵌套到fragment里而不是首页的viewpager上,此时问题终于解决。