Tôi đang cố sử dụng ScrollView ngang trong React Native cho Android, vị trí bắt đầu ở giữa hình ảnh cuộn thay vì (0,0).Phản ứng cuộn Android ScrollView gốc Để không hoạt động
Phương thức scrollTo
dường như được gọi chính xác bên trong componentDidMount
nhưng không có gì di chuyển trong ứng dụng, nó vẫn hiển thị khi bắt đầu cuộn tất cả các con đường sang trái.
Vì đây là Android, tôi không có quyền truy cập vào các đạo cụ contentOffset hoặc tôi sẽ đặt trực tiếp, theo tài liệu. Đây là mã:
'use strict';
var React = require('react-native');
var {
StyleSheet,
View,
Text,
ScrollView,
Component,
} = React;
var precomputeStyle = require('precomputeStyle');
class Carousel extends Component {
constructor(props, context) {
super(props, context);
//this.changeContent = this.changeContent.bind(this);
}
componentDidMount() {
this.myScroll.scrollTo(100);
console.log("called DidMount");
}
render() {
return (
<View style={{flex: 1}}>
<ScrollView ref={(ref) => this.myScroll = ref}
contentContainerStyle={styles.container}
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
bounces={true}
onMomentumScrollEnd={this.onAnimationEnd}
>
{this.props.children}
</ScrollView>
</View>
);
}
onAnimationEnd(e) {
console.log("curr offset: " + e.nativeEvent.contentOffset.x);
}
}
var styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
},
page: {
alignItems: 'center',
justifyContent: 'center',
borderWidth: 1,
},
});
module.exports = Carousel;
Bạn có thể thử thêm tọa độ Y không? Ví dụ. 'scrollTo (100, 0)'. – Felix
Tôi đã làm và sự cố vẫn như cũ, tọa độ còn thiếu chỉ mặc định nếu không được chỉ định. –
Tôi nghĩ nó thực sự là 'scrollTo (y, x)' nhưng cú pháp đó không được chấp nhận. Bây giờ là 'scrollTo ({x: n, y: n, hoạt hình: bool})' và như Rob đã đề cập, bạn có thể bỏ qua 'x',' y' và 'hoạt hình' tùy theo nhu cầu của bạn. – PhilT