下午好,
我正在尝试以编程方式滚动ScrollView,该ScrollView包含一个比真实大小的ScrollView大的视图容器。但是,ScrollView需要以预定的大小切断容器。因此,如果ScrollView高度为600px且容器大小为1000px,那么我需要访问1000px,以便我可以通过编程方式进行流畅滚动。这个问题在github上为另一位开发人员解决了,但这对我来说似乎没有用。这是我尝试过的:
<ScrollView>
<View onLayout={(event) => {console.log(event.nativeEvent.layout);}>
...
</View>
</ScrollView>
尝试1:在scrollView和内部视图中放置onLayout回调并使用innerViews布局高度。 结果:这不起作用ScrollView和内部视图报告的高度为600。
尝试2:保存对ScrollView的引用,然后稍后调用RCTUIManager的measure函数:
RCTUIManager.measure(this.refs.scrollView.getInnerViewNode(), (...data)=>{console.log(data)});
结果:这也不起作用,innerViewNode再次报告容器高度(数据中的第4个参数)为600。
任何人都有接受容器高度的不同解决方案?我肯定在一个600%的px滚动视图中放置一个1000ish px视图,当我以编程方式滚动说100px时,我可以看到内容实际上比ScrollView包装器更大。
感谢任何人提供的任何帮助!
答案 0 :(得分:0)
这是我发现的解决方案:
<ScrollView>
{{...components of variable length...}}
<View key="bottomMarker" onLayout={() => {console.log(event.nativeEvent.layout.y)}}></View>
</ScrollView>
通过使用View作为底部的标记,您可以找到滚动视图底部的位置。