学习交流:https://gitee.com/potato512/Learn_ReactNative
react-native学习交流QQ群:806870562
效果图
代码示例
import React,{ Component } from 'react'; import { StyleSheet,View,Text,SectionList } from 'react-native'; type Props = {}; export default class SectionListPage extends Component<Props> { // 定义分组中的每个单元格 listRow = (info) => { var txt = ' ' + info.item.type; return <Text style={styles.sectionItem}>{txt}</Text> }; // 定义分组 listSection = (info) => { var txt = info.section.key; return <View style={styles.sectionHeader}><Text style={styles.sectionTxtHeader}>{txt}</Text></View> }; render() { // 定义数据源 let sections = [ { key: "UI View",data: [{ type: "View" },{ type: "Text" },{ type: "Image" },{type: "TextInput"},{type: "StyleSheet"},{type: "ScrollView"}] },{ key: "UI Other",data: [{ type: "ActivityIndicator" },{ type: "Alert" },{ type: "Animated" },{ type: "CameraRoll" },{ type: "Clipboard" },{type:"Demensions"},{type:"KeyboardAvoiding"},{type:"Linking"},{type:"Modal"},{type:"PixedRation"},{type:"RefreshControl"},{type:"StatusBar"},{type:"WebView"}] },{ key: "UI List",data: [{ type: "FlatList" },{ type: "SectionList" }] },{ key: "UI iOS",data: [{ type: "ActionSheet" },{ type: "AlertIOS" },{ type: "DatePickerIOS" },{ type: "ImagePickerIOS" },{ type: "NavigatorIOS" },{ type: "ProgressView" },{type:"PushNotificationIOS"},{type:"SegmentControlIOS"},{type:"TabBarIOS"}] },{ key: "UI Android",data: [{ type: "BackHandleAndroid" },{ type: "DatePickerAndroid" },{type:"DrawLayoutAndroid"},{type:"PermissionsAndroid"},{type:"ProgressBarAndroid"},{type:"TimePickerAndroid"},{type:"ToastAndroid"},{type:"ToolbarAndroid"},{type:"ViewAndroid"}] },{ key: "UI userInterface",data: [{ type: "Button" },{ type: "Picker" },{type: "Slider"},{type:"Switch"}] },]; return( <View> /* 分组列表*/ <SectionList renderSectionHeader={this.listSection} renderItem={this.listRow} ItemSeparatorComponent={() => <View style={{height:0.5,backgroundColor:"#FF0000"}}></View>} ListHeaderComponent={HeaderComponent} ListFooterComponent={FooterComponent} sections={sections}> </SectionList> </View> ) } } // 定义分组列表表头 const HeaderComponent = (() => <View style={styles.headerStyle}><Text style={styles.headerTxtStyle}>组件学习</Text></View>); // 定义分组列表表尾 const FooterComponent = (() => <View style={styles.footerStyle}><Text style={styles.footerTxtStyle}>组件学习</Text></View>); // 样式定义 const styles = StyleSheet.create({ headerStyle: { height: 50,paddingHorizontal:20,backgroundColor:"#E6E6FA" },headerTxtStyle: { lineHeight: 50,textAlign:"left",fontSize:30,color:"#8A2BE2" },footerStyle: { height: 50,backgroundColor:"#000000" },footerTxtStyle: { lineHeight:50,textAlign:"right",fontSize:20,color:"#EE82EE" },sectionHeader: { height:40,paddingHorizontal:10,justifyContent:"center",// alignItems:"center",},sectionTxtHeader: { fontSize:26,sectionItem: { height:30,textAlign: "center",color: "#FFFFFF",fontSize:24,backgroundColor: '#9CEBBC' } });
在App.js中的引用
import SectionListPage from "./Components/ListPage/SectionListPage"; type Props = {}; export default class App extends Component<Props> { render() { return ( <SectionListPage/> ); } }