加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native分组列表SectionList

发布时间:2020-12-15 06:27:57 所属栏目:百科 来源:网络整理
导读:学习交流: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 defau

学习交流: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/>
    );
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读