可顯示超過畫面高度的物件
- 可顯示不同的物件
- 偷懶用的 List
<ScrollView>
<ListItem key={1} />
<ListItem key={2} />
<ListItem key={3} />
<ListItem key={4} />
<ListItem key={5} />
<ListItem key={6} />
<ListItem key={7} />
</ScrollView>
React Native 更高效能的 ListView,用來顯示列表、重複的物件 從 0.43 開始支援
- 跨平台
- 支持水平佈局(flexDirection: row)
- 支援 Header
- 支援 Footer
- 支援分隔線
- 支援下拉刷新
- 支援上拉加載
- 支援跳轉到指定行(ScrollToIndex)
- 如果需要分组/類/區(section),可以使用 用法雷同。
使用 array, render list 時會遍歷該 array
[
{key: 'A', title: '標題', desc: '內容'},
{key: 'B', title: '標題2', desc: '內容2'},
]
renderIte={(item) => {
console.log(item); // {key: 'A', title: '標題', desc: '內容'}
return (
<View>
<Text>{item.title}</Text>
<Text>{item.desc}</Text>
</View>
)
}}
List 滑動到底部觸發
觸發 onEndReached 的時機,0.5 代表一半
清單表頭
清單尾
清單分隔線
下拉刷新,可搭配元件 RefreshControl 達到下拉刷新的效果
refreshControl={
<RefreshControl
refreshing={this.state.refreshing}
onRefresh={this.onRefresh}
/>
}
<FlatList
data={[
{key: 'AAAAAA'},
{key: 'BBBBBB'},
{key: 'CCCCCC'},
{key: 'DDDDDD'},
{key: 'EEEEEE'},
{key: 'FFFFFF'},
{key: 'GGGGGG'},
{key: 'HHHHHH'},
{key: 'IIIIII'},
{key: 'JJJJJJ'},
{key: 'KKKKKK'},
{key: 'LLLLLL'},
]}
renderItem={({item}) => <View style={{ height: 150 }}><Text>{item.key}</Text></View>}
onEndReached={() => { Alert.alert('阿', '到底摟') }}
ListHeaderComponent={
<View style={[styles.container, { backgroundColor: 'blue' }]}>
<Text style={{ color: '#fff' }}>Header</Text>
</View>
}
ListFooterComponent={
<View style={[styles.container, { backgroundColor: 'green' }]}>
<Text style={{ color: '#fff' }}>Footer</Text>
</View>
}
ListEmptyComponent={
<View style={[styles.container, { backgroundColor: 'red' }]}>
<Text style={{ color: '#fff' }}>Empty</Text>
</View>
}
ItemSeparatorComponent={
({highlighted}) => <View style={{ height: 3, backgroundColor: 'pink' }} />
}
/>
<SectionList
renderItem={({item}) => <ListItem title={item} />}
renderSectionHeader={({section}) => <Header title={section.title} />}
sections={[ // homogeneous rendering between sections
{data: [...], title: ...},
{data: [...], title: ...},
{data: [...], title: ...},
]}
/>
ListView - 舊版 ListView 使用方式 已過時