如何通过单击按钮水平滚动,如下一个和上一个。在本机反应中
how to scroll horizontal by button click like next and previous. in react native
我正在尝试逐屏滚动,例如屏幕 1,然后是屏幕 2,然后是屏幕 3,然后是屏幕 4 等等,并且还滚动到上一个屏幕,例如从屏幕 4 到屏幕 3。但是在下面的代码中我是只能在两个屏幕之间滚动。屏幕 1 和屏幕 2。我想滚动更多屏幕,如屏幕 3、4、5、6、7、8。请帮忙
<View style={styles.MainContainer}>
<View style={styles.ButtonViewContainer}>
<View style={styles.ButtonContainer}>
<Button
title="Previous Screen"
onPress={() => {
this.scroll.scrollTo({ x: 1 });
}}
/>
</View>
<View style={styles.ButtonContainer}>
<Button
title="Next Screen"
onPress={() => {
this.scroll.scrollTo({ x: screenWidth });
}}
/>
</View>
</View>
<ScrollView
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
ref={(node) => (this.scroll = node)}
>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 1</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 2</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 3</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 4</Text>
</View>
</ScrollView>
</View>
尝试使用 npm 包
这让您可以更好地控制多个屏幕的下一个和上一个
或者如果您想继续现有的滚动视图管理,那么您必须管理滚动位置的当前索引,然后您可以使用它管理下一个和上一个。
例如:
const App = () => {
const currIndex = useRef(0)
return (
<View style={styles.MainContainer}>
<View style={styles.ButtonViewContainer}>
<View style={styles.ButtonContainer}>
<Button
title="Previous Screen"
onPress={() => {
currIndex.current -= 1
this.scroll.scrollTo({ x: screenWidth * currIndex.current });
}}
/>
</View>
<View style={styles.ButtonContainer}>
<Button
title="Next Screen"
onPress={() => {
currIndex.current += 1
this.scroll.scrollTo({ x: screenWidth * currIndex.current });
}}
/>
</View>
</View>
<ScrollView
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
ref={(node) => (this.scroll = node)}>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 1</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 2</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 3</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 4</Text>
</View>
</ScrollView>
</View>
)
}
我正在尝试逐屏滚动,例如屏幕 1,然后是屏幕 2,然后是屏幕 3,然后是屏幕 4 等等,并且还滚动到上一个屏幕,例如从屏幕 4 到屏幕 3。但是在下面的代码中我是只能在两个屏幕之间滚动。屏幕 1 和屏幕 2。我想滚动更多屏幕,如屏幕 3、4、5、6、7、8。请帮忙
<View style={styles.MainContainer}>
<View style={styles.ButtonViewContainer}>
<View style={styles.ButtonContainer}>
<Button
title="Previous Screen"
onPress={() => {
this.scroll.scrollTo({ x: 1 });
}}
/>
</View>
<View style={styles.ButtonContainer}>
<Button
title="Next Screen"
onPress={() => {
this.scroll.scrollTo({ x: screenWidth });
}}
/>
</View>
</View>
<ScrollView
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
ref={(node) => (this.scroll = node)}
>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 1</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 2</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 3</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 4</Text>
</View>
</ScrollView>
</View>
尝试使用 npm 包
这让您可以更好地控制多个屏幕的下一个和上一个
或者如果您想继续现有的滚动视图管理,那么您必须管理滚动位置的当前索引,然后您可以使用它管理下一个和上一个。
例如:
const App = () => {
const currIndex = useRef(0)
return (
<View style={styles.MainContainer}>
<View style={styles.ButtonViewContainer}>
<View style={styles.ButtonContainer}>
<Button
title="Previous Screen"
onPress={() => {
currIndex.current -= 1
this.scroll.scrollTo({ x: screenWidth * currIndex.current });
}}
/>
</View>
<View style={styles.ButtonContainer}>
<Button
title="Next Screen"
onPress={() => {
currIndex.current += 1
this.scroll.scrollTo({ x: screenWidth * currIndex.current });
}}
/>
</View>
</View>
<ScrollView
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
ref={(node) => (this.scroll = node)}>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 1</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 2</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 3</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>Screen 4</Text>
</View>
</ScrollView>
</View>
)
}