gpt4 book ai didi

android - 在按钮单击时 react native 水平滚动

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:19 27 4
gpt4 key购买 nike

我是 React Native 的初学者。从image 可以看出我有一个 ScrollView 和两个按钮。我已经成功地实现了 ScrollView ,它工作正常,但我也希望它们在按下按钮时自动滚动。我尝试了很多搜索但没有得到任何有用的东西。所以任何帮助表示赞赏。请在下面找到我的代码。

import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, View, Dimensions, ScrollView, Button } from 'react-native';

var screenWidth = Dimensions.get('window').width;

export default class App extends React.Component {
render() {
return (
<View style={styles.MainContainer}>
<View style={styles.ButtonViewContainer}>
<View style={styles.ButtonContainer}>
<Button title="Screen 1" />
</View>
<View style={styles.ButtonContainer}>
<Button title="Screen 2" />
</View>
</View>
<ScrollView
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>
Screen 1
</Text>
</View>
<View style={styles.ScrollContainer}>
<Text style={styles.ScrollTextContainer}>
Screen 2
</Text>
</View>
</ScrollView>
</View>
);
}
}

const styles = StyleSheet.create({
MainContainer: {
backgroundColor: '#abe3a8',
flex: 1,
justifyContent: 'center',
alignItems: 'center'

},
ScrollContainer: {
backgroundColor: '#cdf1ec',
flexGrow: 1,
marginTop: 0,
width: screenWidth,
justifyContent: 'center',
alignItems: 'center'
},
ScrollTextContainer: {
fontSize: 20,
padding: 15,
color: '#000',
textAlign: 'center'
},
ButtonViewContainer: {
flexDirection: 'row',
paddingTop: 35,
},
ButtonContainer: {
padding: 30,
},
});

最佳答案

我不能保证这是最好的方法,因为我没有大量使用 React Native。

this.scroll.scrollTo({ x: calculatedStartPositionOfTheScreen}) 添加到您的按钮按下处理程序 https://facebook.github.io/react-native/docs/scrollview#scrollto

例如

<View>
...
<View style={styles.ButtonContainer}>
<Button title="Screen 1" onPress={() => { this.scroll.scrollTo({ x: 0 }) }} />
</View>
<View style={styles.ButtonContainer}>
<Button title="Screen 2" onPress={() => { this.scroll.scrollTo({ x: screenWidth }) }} />
</View>
<View style={styles.ButtonContainer}>
<Button title="Screen 3" onPress={() => { this.scroll.scrollTo({ x: screenWidth * 2 }) }} />
</View>
...
<ScrollView
horizontal={true}
pagingEnabled={true}
showsHorizontalScrollIndicator={false}
ref={(node) => this.scroll = node}
>
...
</ScrollView>
</View >

对于更大项目中的这个用例,您还可以考虑 https://reactnavigation.org

关于android - 在按钮单击时 react native 水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629192/

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