使用React Native LayoutImation设置ListView行删除的动画

使用React Native LayoutImation设置ListView行删除的动画,listview,animation,react-native,layout-animation,Listview,Animation,React Native,Layout Animation,我无法使用LayoutImation设置从ListView中删除行的动画 由于layoutimation.spring预设动画使用spring和淡入淡出的视图创建来处理视图更新,因此我希望在删除后,底部现有行会向上弹出。相反,它们逐渐消失 使用RN 0.18.1 let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); var movies = [movie1, movie2, movie3, mov

我无法使用LayoutImation设置从ListView中删除行的动画

由于layoutimation.spring预设动画使用spring和淡入淡出的视图创建来处理视图更新,因此我希望在删除后,底部现有行会向上弹出。相反,它们逐渐消失

使用RN 0.18.1

let ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
var movies = [movie1, movie2, movie3, movie4, movie5];

...

renderRow(row) {
  return <MovieRow key={row.movieId} />
}

...

// immutable delete of element in reducer (redux)
movies = movies.slice(0, 2).concat(movies.slice(3));

...

LayoutAnimation.spring();
this.setState({
  dataSource: ds.cloneWithRows(movies)
});
let ds=new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2});
var movies=[movie1,movie2,movie3,movie4,movie5];
...
渲染箭头(世界其他地区){
返回
}
...
//reducer中元素的不可变删除(redux)
movies=movies.slice(0,2).concat(movies.slice(3));
...
layoutimation.spring();
这是我的国家({
数据源:ds.cloneWithRows(电影)
});

似乎LayoutImation还不支持删除

注意:布局动画用于创建和更新布局事件。尚不支持删除。请注意,当删除圆时,没有动画

选中此项:

编辑: 现在支持删除:

安卓系统


iOS

最新的
react native
已经支持删除动画。我做了这样的事情:

const CustomLayoutLinear = {
  duration: 300,
  create: {
    type: LayoutAnimation.Types.easeInEaseOut,
    property: LayoutAnimation.Properties.opacity
  },
  update: {
    type: LayoutAnimation.Types.easeInEaseOut
  },
  delete: {
    type: LayoutAnimation.Types.easeInEaseOut,
    property: LayoutAnimation.Properties.opacity
  }
};
只有“创建”或“删除”将触发不透明度的向内和向外缓和。只需执行easeIn和easeout即可更新组件

然后在安装组件时钩住customLayoutLinear

  LayoutAnimation.configureNext(CustomLayoutLinear);

现在看来是这样!(但我还不能测试它…)删除似乎是受支持的,但我似乎无法使它工作。谁知道这是怎么回事?