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