2

LayoutAnimation を使用して ListView からの行の削除をアニメーション化するのが困難です。

LayoutAnimation.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)
});
4

2 に答える 2

1

LayoutAnimation はまだ削除をサポートしていないようです。

注: LayoutAnimation は、Create および Update レイアウト イベントに対して機能します。削除はまだサポートされていません。円が削除されるとアニメーションが表示されないことに注意してください。

これを確認してください:https://medium.com/@Jpoliachik/react-native-s-layoutanimation-is-awesome-4a4d317afd3e#.9cdaqazay

編集: 削除がサポートされるようになりました:

Android : 0.28 リリース ノート

iOS : 0.26 リリース ノート

于 2016-05-18T06:26:02.287 に答える