我有一个水平ListView,ListView的每个项目占据整个宽度和高度,第二个项目相同等等(它就像一个水平分页),实现之后我想以编程方式滚动到下一个项目,所以我禁用了滚动scrollEnabled={false}
现在我想以编程方式(在触发事件之后)滚动到下一个项目(页面),这个的任何提示或想法?
UPD
这是由scrollTo:scrollTo is not defined
<Button title="Learn More"
onPress = {(ev)=>{
scrollTo(0, 1000)
}}></Button>
答案 0 :(得分:2)
<强> 1。尝试获取滚动视图的参考
我就是这样做的:
render(){
let _listView: ListView;
return (
<ListView ref={(listView) => { _listView = listView; }}
dataSource={this.state.dataSource}
renderRow={this._renderRow.bind(this)}
/>
)
}
<强> 2。使用_listView
变量并调用scrollTo
方法。
请注意,您在箭头函数和上面的代码中使用它,_listView
变量位于render
方法内。因此,您可以在构造函数中创建它,然后将其用作类属性。
像这样:
constructor() {
this._listView = {};
}
(请注意,这是一个示例初始化,我不知道你在哪里使用那个按钮,所以可能这第二点不是必需的,甚至是错误的,所以一切都可以在render方法中完成。)