一个很常见的UI,不过在RN上好像没有成熟的解决方案,只好自己动手实现。
尝试了很多方案,动画、手势...都有瑕疵,在这里只介绍我认为可用性最高的解决方案。
思路是这样的:scrollview嵌套scrolltabview,通过控制scrollEnabled,来切换滚动权限,实现视差效果。
第一步:基本结构、变量
第二步:监听scroll事件,记录scrolltabview的contentOffsetY以及控制scroll权限
第三部(关键):切换tab页,调整scrollview的contentOffset
防止切换tab,scroll事件不触发,控制当前scrollRef移动内容。
大功告成,其实就这么几部,一开始就想到了这个实现方案,只是遗漏了第二步关键点,所以多走了很多弯路。
流畅性马马虎虎,不过勉强能用。。。