-
resetLoadmore()
this.refs.scroller1.resetLoadmore();
<ScrollView ref="scroller1" onEndReached={this.loadmore}>
{this.getViews()}
</ScrollView>;
这是一个重置 onEndReached 是否能触发的
标记位的方法。标记位默认为 true,即滚动到底部即可触发 onEndReached 事件。但当 onEndReached 触发后,没有通过 setState 增加数据导致页面 scroller 内容变长,(或者反而变短了),native 端会将标记位设置为 false。
此时调用 resetLoadmore ,可以清除标记位,让 onEndReached 可以再次触发。
-
scrollTo(options = { y: 0, animated: true})
当前 ScrollView 实例需要滚动到某个位置时,目前只支持纵向滚动
- options:
- options.y : 位移偏移量,默认 0
- options.animated: 是否展示滑动动画 , 默认 true
scrollTo = e => {
this.refs.scroller1.scrollTo({ y : 100 });
};
render(){
return (
<ScrollView ref="scroller1" style={styles.scroller}>
<View style={{ height: 400 }}></View>
<View style={{ height: 400 }}></View>
<View style={{ height: 400 }}></View>
<Button onPress={this.scrollTo}> 滑动到 100rem </Button>
</ScrollView>
)
}
-
scrollToElement(ref,options = {offset:0, animated:true})
当前 ScrollView 实例需要把某个元素滚动到可视区域时
- ref : 元素实例
- options:
- options.offset : 位移偏移量,默认 0
- options.animated: 是否展示滑动动画 , 默认 true
scrollToElement = e => {
this.refs.scroller1.scrollToElement(this.refs.specialView);
};
render(){
return (
<ScrollView ref="scroller1" style={styles.scroller}>
<View style={{ height: 400 }}></View>
<View style={{ height: 400 }}></View>
<View style={{ height: 400 }} ref="specialView"><Text> hi, I am special </Text></View>
<View style={{ height: 400 }}></View>
<Button onPress={this.scrollToElement}> 滑动到指定元素:ref = specialView </Button>
</ScrollView>
)
}