Skip to content

Commit 0417eb1

Browse files
committed
Updating VerticalStepIndicatorExample.js with flatlist
1 parent c2726ac commit 0417eb1

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

example/VerticalStepIndicatorExample.js

+17-13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { Component } from 'react';
2-
import { View, Text, StyleSheet, ListView } from 'react-native';
2+
import { View, Text, StyleSheet, ListView, FlatList } from 'react-native';
33
import StepIndicator from 'react-native-step-indicator';
44
import dummyData from './data';
55

@@ -29,11 +29,10 @@ export default class VerticalStepIndicator extends Component {
2929
constructor() {
3030
super();
3131

32-
const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
3332
this.state = {
34-
dataSource: ds.cloneWithRows(dummyData.data),
3533
currentPage:0
3634
};
35+
this.viewabilityConfig = {itemVisiblePercentThreshold: 40}
3736
}
3837

3938
render() {
@@ -48,27 +47,32 @@ export default class VerticalStepIndicator extends Component {
4847
labels={dummyData.data.map(item => item.title)}
4948
/>
5049
</View>
51-
<ListView
52-
dataSource={this.state.dataSource}
53-
renderRow={this.renderPage}
54-
onChangeVisibleRows={this.getVisibleRows}
55-
/>
50+
<FlatList
51+
style={{flexGrow:1}}
52+
data={dummyData.data}
53+
renderItem={this.renderPage}
54+
onViewableItemsChanged={this.onViewableItemsChanged}
55+
viewabilityConfig={this.viewabilityConfig}
56+
/>
5657
</View>
5758
);
5859
}
5960

6061
renderPage = (rowData) => {
62+
const item = rowData.item
6163
return (
6264
<View style={styles.rowItem}>
63-
<Text style={styles.title}>{rowData.title}</Text>
64-
<Text style={styles.body}>{rowData.body}</Text>
65+
<Text style={styles.title}>{item.title}</Text>
66+
<Text style={styles.body}>{item.body}</Text>
6567
</View>
6668
)
6769
}
6870

69-
getVisibleRows = (visibleRows) => {
70-
const visibleRowNumbers = Object.keys(visibleRows.s1).map((row) => parseInt(row));
71-
this.setState({currentPage:visibleRowNumbers[0]})
71+
onViewableItemsChanged = ({ viewableItems, changed }) => {
72+
const visibleItemsCount = viewableItems.length;
73+
if(visibleItemsCount != 0) {
74+
this.setState({currentPage:viewableItems[visibleItemsCount-1].index})
75+
};
7276
}
7377
}
7478

0 commit comments

Comments
 (0)