gpt4 book ai didi

react-native - 在React Native中滚动到ScrollView的底部

转载 作者:行者123 更新时间:2023-12-03 14:19:30 24 4
gpt4 key购买 nike

我想找到一种以编程方式滚动到scrollView底部的方法。在查看ScrollView的源代码后,我知道了scrollTo方法,但是似乎无法找到一种方法来测量scrollView的内容大小。

环顾四周后,我遇到了this github问题,其中提到要查看如何使用“UIManager.measureX方法”来度量内容大小。但是,在源代码中搜索了几次之后,我似乎无法完全找到使用这些方法的位置。

有人可以指出正确的方向吗?

最佳答案

它非常模糊,我遇到了源代码。

您可以这样尝试:

要求:

var RCTUIManager = require('NativeModules').UIManager;

使成为:

<ScrollView ref = {component=>{this._scrollView=component;}}>
</ScrollView>

事件:

someEvent: function() {
RCTUIManager.measure(this._scrollView.getInnerViewNode(), (...data)=>{console.log(data)});
}

从数据中,您可以获取滚动 View 的内容大小,该滚动 View 的高度是 data的第四个元素。当然,您可以从中获取内容的偏移量。进入 RCTUIMananger.m的源代码以获取更多详细信息。

使用 getInnerViewNode时,您可以获取ScrollView的内部 View 的框架。如果要获取ScrollView的框架,则应使用 React.findNodeHandle(this._scrollView),并且ScrollView的框架并不总是等于其内部 View 的框架。

(更新)

如果要将 (...data)=>{console.log(data)}替换为 callback,则应按以下方式使用它:

RCTUIManager.measure(this._scrollView.getInnerViewNode(), callback.bind(this));

关于react-native - 在React Native中滚动到ScrollView的底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com