水平スクロールビューをReact Native Androidで使用しようとしています。開始位置は(0,0)ではなくスクロールイメージの中央になります。本物のAndroid ScrollViewに対応するscrollは機能しません
scrollTo
メソッドは、componentDidMount
内で正しく呼び出されたようですが、アプリケーション内で何も動かず、スクロールをすべて左端から開始するように表示されます。
これはAndroidなので、私はcontentOffsetの小道具にアクセスすることはできません。あるいは、ドキュメンテーションに従って直接設定することもできます。ここでは、コードは次のとおりです。
'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;
Y座標も追加できますか?例えば。 'scrollTo(100、0)'。 – Felix
私はそうして、問題は同じままです。欠落している座標は、指定されていなければ、デフォルトでゼロになります。 –
実際には 'scrollTo(y、x)'だと思いますが、その構文は非難されています。今は 'scrollTo({x:n、y:n、animated:bool})'です。Robがこれを述べたように、必要に応じて 'x'、' y'、 'animated'を省略することができます。 – PhilT