gpt4 book ai didi

react-native - 添加数据时保持ScrollView的Position

转载 作者:行者123 更新时间:2023-12-04 05:27:31 24 4
gpt4 key购买 nike

我正在尝试做到这一点,无论何时将新内容渲染到 ScrollView 中, ScrollView 都将保持原样,不会上下颠簸。现在,如果渲染了一个新组件,则 ScrollView 似乎重置为 0。

有没有办法阻止这种行为,并保持立场?

现在我正在使用的 ScrollView :

handleScrollt(event){
this.scroll = event.nativeEvent.contentOffset.y
}

handleSizet(width, height){
if (this.scroll) {
const position = this.scroll + height - this.height
this.refs.sv.scrollTo({x: 0, y: position, animated: false})
}
this.height = height
}



<ScrollView
ref="sv"

scrollEventThrottle={16}

onScroll={this.handleScrollt.bind(this)}
onContentSizeChange={this.handleSizet.bind(this)}

问题是 ScrollView 会短暂呈现,然后滚动到正确的偏移量。所以看起来屏幕顶部有一个短暂的飞溅

最佳答案

您必须为 ScrollView 定义一个高度。

如果 ScrollView 应该覆盖整个 View ,您可以通过以下方式获取 View 的高度:

<View style={styles.contactView} onLayout={(event) => { 
var contactViewY = event.nativeEvent.layout.y;
this.setState({contactViewY: contactViewY})
}}>

然后交给scrollview

<ScrollView style={[styles.contactScroller, {height: this.state.contactViewY}]}>

请记住,一旦计算出布局,就会立即调用 onLayout 方法,因此如果稍后 View 的高度发生变化,仅这两行代码不会更新它。

关于react-native - 添加数据时保持ScrollView的Position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49471213/

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