ScrollView 不会跟踪当前位置。点击时它会重置回以前的位置
ScrollView doesn't keep track of current position. When tapped it resets back to previous location
问题步骤:
1:从位置x向下滚动页面
2: 页面滚动到位置 y
3:松开手指
4:用户再次点击手指继续滚动
5:ScrollView 上的位置重置回位置 x 导致跳回并阻止进一步滚动
我已尝试查找有关 react-native-modal 和 ScrollView 的信息以找到问题,但找不到任何此类问题
正在使用的库:react-native-modal
scrollOffset: 0
scrollViewRef
handleScrollTo = p => {
if (this.scrollViewRef) {
this.scrollViewRef.scrollTo(p);
}
};
<Modal
isVisible={this.state.visibleModal}
onSwipeComplete={() => this.setState({ visibleModal: false })}
swipeDirection="down"
scrollTo={this.handleScrollTo}
scrollOffset={this.state.scrollOffset}
scrollOffsetMax={400 - 300} // content height - ScrollView height
style={screenStyles.bottomModal}
useNativeDriver
>
{this._renderModalContent()}
</Modal>
// Render modal content (there's a view wrapping this)
<ScrollView
style ={{flex: 8, paddingLeft: '10%', paddingTop: '10%'}}
ref={ref => (this.scrollViewRef = ref)}
onScroll={event => {this.state.scrollOffset = event.nativeEvent.contentOffset.y}}
scrollEventThrottle={16}>
>
{Object.keys(balances).map(
symbol =>
symbolPriceTicker[`${symbol}USDT`] &&
COIN_INFO[symbol] && (
<TouchableOpacity
key={`c-${symbol}`}
style={screenStyles.assetSelector.selector}
onPress={() => this.selectAsset(symbol)}
>
<View style={{flexDirection: 'row'}}>
<Image
style={screenStyles.assetSelector.coinAvatar}
source={COIN_INFO[symbol] ? COIN_INFO[symbol].avatar_32 : null}
/>
<Text style={screenStyles.assetSelector.coinName}>
{COIN_INFO[symbol].name}
</Text>
</View>
</TouchableOpacity>
),
)}
</ScrollView>
可能是Model中props的问题,跟scroll有关
当您在 Model
中使用 ScrollView
时,假设 ,您需要一个可关闭的滚动视图
更多:https://github.com/react-native-community/react-native-modal/issues/109
希望对您有所帮助
问题步骤: 1:从位置x向下滚动页面 2: 页面滚动到位置 y 3:松开手指 4:用户再次点击手指继续滚动 5:ScrollView 上的位置重置回位置 x 导致跳回并阻止进一步滚动
我已尝试查找有关 react-native-modal 和 ScrollView 的信息以找到问题,但找不到任何此类问题
正在使用的库:react-native-modal
scrollOffset: 0
scrollViewRef
handleScrollTo = p => {
if (this.scrollViewRef) {
this.scrollViewRef.scrollTo(p);
}
};
<Modal
isVisible={this.state.visibleModal}
onSwipeComplete={() => this.setState({ visibleModal: false })}
swipeDirection="down"
scrollTo={this.handleScrollTo}
scrollOffset={this.state.scrollOffset}
scrollOffsetMax={400 - 300} // content height - ScrollView height
style={screenStyles.bottomModal}
useNativeDriver
>
{this._renderModalContent()}
</Modal>
// Render modal content (there's a view wrapping this)
<ScrollView
style ={{flex: 8, paddingLeft: '10%', paddingTop: '10%'}}
ref={ref => (this.scrollViewRef = ref)}
onScroll={event => {this.state.scrollOffset = event.nativeEvent.contentOffset.y}}
scrollEventThrottle={16}>
>
{Object.keys(balances).map(
symbol =>
symbolPriceTicker[`${symbol}USDT`] &&
COIN_INFO[symbol] && (
<TouchableOpacity
key={`c-${symbol}`}
style={screenStyles.assetSelector.selector}
onPress={() => this.selectAsset(symbol)}
>
<View style={{flexDirection: 'row'}}>
<Image
style={screenStyles.assetSelector.coinAvatar}
source={COIN_INFO[symbol] ? COIN_INFO[symbol].avatar_32 : null}
/>
<Text style={screenStyles.assetSelector.coinName}>
{COIN_INFO[symbol].name}
</Text>
</View>
</TouchableOpacity>
),
)}
</ScrollView>
可能是Model中props的问题,跟scroll有关
当您在 Model
中使用 ScrollView
时,假设 ,您需要一个可关闭的滚动视图
更多:https://github.com/react-native-community/react-native-modal/issues/109
希望对您有所帮助