各アイテムがwidth:300
である水平フラットリストがあります。表示しようとしているアイテムのインデックスを取得するだけです。RNフラットリストで現在表示されているインデックスを取得する方法
handleScroll(event) {
let index = Math.ceil(
event.nativeEvent.contentOffset.x/300
);
そして、このような何か:この試しました
<FlatList
onScroll={(e) => this.handleScroll(e)}
horizontal={true}
data={this.state.data}
renderItem...
handleScroll(event) {
let contentOffset = event.nativeEvent.contentOffset;
let index = Math.floor(contentOffset.x/300);
を何も、私はいつも一つの指標アップまたは1つのインデックスを降り正確ではありません。
私は間違って何をやっていますか、フラットリストで正しい現在のインデックスを取得する方法はありますか?
たとえば私は、リスト内の8番目である項目をリストしてもらうが、私はあなたが欲しいものを得るためにFlatList onViewableItemsChanged
小道具を使用することができ、インデックス9または10
しかし、どのデータを使用するかはわかります。アイテムは幅が300pなので、中にあれば20pの左右のアイテムが表示されます。ここでは中に入ることができます。しかし、2つの項目がある場合は、データを取得するために次の項目を選択する方法があります。 – 1110
このコールバックは3つのアイテムをすべて表示します。完全に消えたアイテムだけが目に見えないとマークされます。 –
私は画像で質問を更新しました。私は画像のように2つのアイテムを見ることができました。私は1つのアイテムデータ(おそらく別のものよりも目に見えるもの)を取得する必要があります。このコールバックは何とかできますか? – 1110