Skip to content

Commit b719400

Browse files
committed
add sample code for v2
1 parent 55721bc commit b719400

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed

example/example_v2.js

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
/**
2+
* it's just a sample code, cannot run directly
3+
*
4+
*/
5+
6+
7+
'use strict';
8+
9+
var React = require('react-native');
10+
var RefreshableListView = require("react-native-refreshable-listview");
11+
var Spinner = require('react-native-spinkit');
12+
13+
var {
14+
AppRegistry,
15+
StyleSheet,
16+
Text,
17+
View,
18+
Image,
19+
ListView,
20+
NavigatorIOS,
21+
TextInput
22+
} = React;
23+
24+
var MyRefreshingIndicator = React.createClass({
25+
render() {
26+
return (
27+
<View style={indicatorStylesheet.wrapper}>
28+
<Spinner isVisible={true} size={20} type="Wave" color="#e67e22"/>
29+
</View>
30+
)
31+
},
32+
});
33+
34+
var MyRefreshingOnPull = React.createClass({
35+
render() {
36+
return (
37+
<View style={indicatorStylesheet.wrapper}>
38+
<Text>pull more to refresh</Text>
39+
</View>
40+
)
41+
},
42+
});
43+
44+
var MyRefreshingOnHold = React.createClass({
45+
render() {
46+
return (
47+
<View style={indicatorStylesheet.wrapper}>
48+
<Text>Release to refresh</Text>
49+
</View>
50+
)
51+
},
52+
});
53+
54+
55+
var listviewReactNative = React.createClass({
56+
getInitialState: function() {
57+
var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
58+
return {
59+
dataSource: ds.cloneWithRows([
60+
{"name" : "A","age":10},
61+
{"name" : "B","age":10},
62+
{"name" : "C","age":10},
63+
{"name" : "D","age":10},
64+
{"name" : "E","age":10},
65+
{"name" : "A","age":10},
66+
{"name" : "A","age":10},
67+
{"name" : "A","age":10},
68+
{"name" : "A","age":10},
69+
{"name" : "A","age":10},
70+
{"name" : "A","age":10},
71+
{"name" : "A","age":10},
72+
{"name" : "A","age":10},
73+
{"name" : "A","age":10},
74+
{"name" : "A","age":10},
75+
{"name" : "A","age":10},
76+
{"name" : "A","age":10},
77+
{"name" : "A","age":10},
78+
]),
79+
};
80+
},
81+
renderHeaderWrapper(Indicator) {
82+
return (
83+
<View>
84+
{/* you MUST render the refreshingIndicator (which is passed in as the first argument) */}
85+
{Indicator}
86+
</View>
87+
)
88+
},
89+
renderRow: function(rowData, sectionID, rowID){
90+
return (
91+
<View style={css.row}>
92+
<Text style={css.text}>{rowData.name}</Text>
93+
<Text style={css.text}>{rowData.age}</Text>
94+
</View>
95+
);
96+
},
97+
render: function() {
98+
return (
99+
<View>
100+
<View style={css.container}>
101+
<RefreshableListView
102+
refreshingIndictatorComponent ={MyRefreshingIndicator}
103+
refreshingOnPullComponent ={MyRefreshingOnPull}
104+
refreshingOnHoldComponent ={MyRefreshingOnHold}
105+
renderHeaderWrapper={this.renderHeaderWrapper}
106+
dataSource ={this.state.dataSource}
107+
renderRow ={this.renderRow.bind(this)}
108+
loadData ={this.renderRow}
109+
minPulldownDistance ={40}
110+
minDisplayTime ={2000}
111+
/>
112+
</View>
113+
</View>
114+
);
115+
}
116+
});
117+
118+
var indicatorStylesheet = StyleSheet.create({
119+
wrapper: {
120+
height: 40,
121+
flex: 1,
122+
justifyContent: 'center',
123+
alignItems: 'center'
124+
},
125+
text: {
126+
textAlign : "center"
127+
}
128+
})
129+
130+
var css = StyleSheet.create({
131+
container: {
132+
marginTop : 35
133+
},
134+
135+
row : {
136+
flexDirection : "row",
137+
paddingBottom : 10,
138+
borderBottomWidth : 1,
139+
borderColor : '#ccc',
140+
marginBottom : 10
141+
},
142+
text : {
143+
flex : 1
144+
}
145+
});
146+
147+
AppRegistry.registerComponent('listviewReactNative', () => listviewReactNative);

0 commit comments

Comments
 (0)