React Native - 立即设置内容位置,避免缓慢滚动
React Native - set content position instantly, avoid slow scroll
This question 指出在 ScrollView 上使用 scrollTo
时无法控制滚动速度。是否有 scrollTo
的替代方案,即立即将内容设置到新位置(没有任何动画)?
我链接到的 "you can't do it" 答案可能涵盖了这一点,但不确定,因为我不知道将内容立即设置到新位置是否算作滚动。
我使用的是 ListView,但由于它是用 ScrollView 构建的,所以我认为同样的问题适用于两者。
如 所述,有一个 animated
标志,您可以将其设置为 false
,以避免滚动动画。我有这个,但认为它不起作用。
原来滚动很慢只是因为 ListView 中的项目是逐渐加载的,所以即使每次添加一个项目时即时滚动看起来仍然像渐进滚动。
为了解决,我将 ListView 的 pageSize
设置为 30(列表中的消息数)以包含在单个事件循环中加载所有 ListView 的项目,从而获得单个滚动跳转,而不是渐进滚动。
<ListView dataSource={messagesDataSource}
renderRow={this._renderMessage}
pageSize={DEFAULT_NUM_MESSAGES} />
This question 指出在 ScrollView 上使用 scrollTo
时无法控制滚动速度。是否有 scrollTo
的替代方案,即立即将内容设置到新位置(没有任何动画)?
我链接到的 "you can't do it" 答案可能涵盖了这一点,但不确定,因为我不知道将内容立即设置到新位置是否算作滚动。
我使用的是 ListView,但由于它是用 ScrollView 构建的,所以我认为同样的问题适用于两者。
如 animated
标志,您可以将其设置为 false
,以避免滚动动画。我有这个,但认为它不起作用。
原来滚动很慢只是因为 ListView 中的项目是逐渐加载的,所以即使每次添加一个项目时即时滚动看起来仍然像渐进滚动。
为了解决,我将 ListView 的 pageSize
设置为 30(列表中的消息数)以包含在单个事件循环中加载所有 ListView 的项目,从而获得单个滚动跳转,而不是渐进滚动。
<ListView dataSource={messagesDataSource}
renderRow={this._renderMessage}
pageSize={DEFAULT_NUM_MESSAGES} />