bolan9999 / react-native-largelist

The best large list component for React Native.
https://bolan9999.github.io/react-native-largelist/
MIT License
2.32k stars 261 forks source link

largelist向上滑动很流畅,但是向下滑动的时候会有闪图 #391

Closed jianxinzhoutiti closed 3 years ago

jianxinzhoutiti commented 4 years ago

111

ATShiTou commented 4 years ago

这个组件采用了重用的策略,在滑动的时候,会将相反方向超出屏幕外的挪到即将渲染的Item上再更新Item。在图片更新上,react native确实很慢,造成这种现象。目前来说,LargeList解决这个问题比较好的办法是通过增大groupCount来增大预渲染缓冲区,从而实现这个问题的弱化。建议将groupCount设置成6-10试试,请注意这个设置如果设置过大,会影响LargeList的初始化和re-render更新速度。(缓冲区的高度大致等于groupCount/3 个屏幕这么高)

ATShiTou commented 4 years ago

groupCount 默认值是4,缓冲区很小,就容易出现你这个问题。不过纯文本够了

jianxinzhoutiti commented 4 years ago

设置了groupCount属性,没实现想要的效果.好像不是这个问题,我这列表是有多种类型的cell,是向下滑动复用时,本来渲染的应该是A类型的cell,但是现在是先闪一下B类型的cell,再渲染出A类型的cell

593980284 commented 4 years ago

我也遇到相同的难题。 采用了重用的策略,在滑动的时候,会将相反方向超出屏幕外的挪到即将渲染的Item上再更新Item。 能否屏幕上下增加缓存距离,如:距离屏幕底部100的组件提前渲染。

ATShiTou commented 4 years ago

@593980284 上面写很清楚了,groupCount可以控制缓冲区大小

ATShiTou commented 4 years ago

这个没有考虑Cell类型很多的情况,复杂度已经很高了。

jinshiyi11 commented 4 years ago

我这边遇到加载更多的时候会闪,这时候会触发Group的componentWillReceiveProps,但是此时props还未更新,会闪一下 https://github.com/bolan9999/react-native-largelist/pull/394

bolan9999 commented 3 years ago

已更新