我们被要求为我们的应用程序实现一个屏幕,其中将有一些列表形式的数据和每个数据类别的部分。按下部分标题时,应展开或折叠部分数据。
起初,我尝试使用 Listview,每次按下标题时我都在更改数据源,但感觉不是正确的做法。
创建自定义视图,动画视图的高度工作正常,但由于数据量很大,初始渲染有点慢,例如导航到屏幕时有明显的延迟。
升级到 RN 44.3 后,我想知道是否可以以比 listview 更好的方式使用 Sectionlist。
通常,解决此类要求的最佳方法是什么?
谢谢!
我们被要求为我们的应用程序实现一个屏幕,其中将有一些列表形式的数据和每个数据类别的部分。按下部分标题时,应展开或折叠部分数据。
起初,我尝试使用 Listview,每次按下标题时我都在更改数据源,但感觉不是正确的做法。
创建自定义视图,动画视图的高度工作正常,但由于数据量很大,初始渲染有点慢,例如导航到屏幕时有明显的延迟。
升级到 RN 44.3 后,我想知道是否可以以比 listview 更好的方式使用 Sectionlist。
通常,解决此类要求的最佳方法是什么?
谢谢!
您可以为 flatlist/SectionList 中的项目设置动画。示例代码如下所示(删除项目的动画)。您也可以对部分列表使用相同的逻辑。
onRemove = () => {
const { onRemove } = this.props;
if (onRemove) {
Animated.timing(this._animated, {
toValue: 0,
duration: ANIMATION_DURATION,
}).start(() => onRemove());
}
};
有关更多详细信息,请参阅此链接。