获取在React Native中可见的视图的多少?

时间:2018-10-11 15:54:02

标签: react-native scrollview opacity

我有一个装有图像的React Native ScrollView-一次一幅图像,垂直滚动。现在,当图像可见或不可见时,我希望它的透明度取决于可见的程度。即如果我将视图滚动到视口的一半或一半,则希望其透明度为0.5,如果完全在视口中则希望其透明度为1.0,而在完全不可见时将其透明度设为0.0。在iOS中,我将使用UIScrollView委托函数scrollViewDidScroll来实现此目的。我该如何在React Native中做到这一点?

1 个答案:

答案 0 :(得分:0)

所以我最终要做的实际上与在iOS上没什么不同。在ScrollView上,我添加了一个存储在this._scrollView中的引用和一个onScroll函数,在该函数中,我将使用findNodeHandle来获取scrollHeight:

var scrollHandle = findNodeHandle(this._scrollView) RCTUIManager.measure(findNodeHandle(scrollHandle), (x, y, width, height, px, py) => { this._scrollHeight = height })

然后对于每个图像,我可以类似地使用py变量和height来查看py是否小于0或py + height是否大于窗口。如果是这样,请根据这些值计算透明度。