![](/img/trans.png)
[英]React Native - How to get Y Offset Value of a view from ScrollView?
[英]In React Native, how can I get the Y offset of a custom component and then scroll a ScrollView to its position?
在React Native中,我有一個帶ScrollView
的屏幕:
let scrollView;
let myComponent2;
function onPress() {
myComponent2.measure((frameOffsetX, frameOffsetY, width, height, pageOffsetX, pageOffsetY) => {
scrollView.scrollTo({ y: frameOffsetY });
}
function MyScrollView() {
return (
<ScrollView ref={ref => scrollView = ref}>
<MyButton onPress={onPress} />
<MyComponent1 />
<MyComponent2 ref={ref => myComponent2 = ref} />
<MyComponent3 />
</ScrollView>
);
};
而MyButton
的定義如下:
function MyButton(props) {
return (
<TouchableHighlight onPress={props.onPress}>
<Text>Press Me</Text>
</TouchableHighlight>
);
}
我想要完成的是當用戶按下MyButton
組件時, ScrollView
應滾動以便MyComponent2
可見。 問題是我無法直接在View
對自定義組件使用measure
。
所以我的問題是: 獲得自定義React Native組件的Y偏移量的最佳方法是什么?
我最終將我的組件包裹在一個額外的View
,以便能夠獲得它的偏移量:
let scrollView;
let myComponent2Wrapper;
function onPress() {
myComponent2Wrapper.measure((frameOffsetX, frameOffsetY, width, height, pageOffsetX, pageOffsetY) => {
scrollView.scrollTo({ y: frameOffsetY });
}
function MyScrollView() {
return (
<ScrollView ref={ref => scrollView = ref}>
<MyButton onPress={onPress} />
<MyComponent1 />
<View ref={ref => myComponent2Wrapper = ref}>
<MyComponent2 />
</View>
<MyComponent3 />
</ScrollView>
);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.