美文网首页
ListView(2)九宫格

ListView(2)九宫格

作者: 努力生活的西鱼 | 来源:发表于2019-02-22 15:10 被阅读0次
React Native NineListView.gif
import React, {Component} from 'react';
import {
    StyleSheet,
    Text,
    View,
    ListView,
    Image,
    TouchableOpacity,
    Dimensions,
    Alert
} from 'react-native';

var shareData = require("./shareData.json");
var screenWidth = Dimensions.get('window').width;

var cols = 3;
var itemWH = 120;
var VMargin = (screenWidth - (itemWH * 3)) / (cols + 1);
var HMargin = 20;

export default class App extends Component<Props> {

    constructor(props) {
        super(props);
        // 创建数据源
        var ds = new ListView.DataSource({rowHasChanged: (r1: r2) => r1 !== r2});
        this.state = {
            dataSource: ds.cloneWithRows(shareData.data)
        }
    }

    render() {
        return (
            <View style={styles.container}>
                <ListView
                    dataSource={this.state.dataSource}
                    renderRow={this.renderRow}
                    contentContainerStyle={styles.listViewStyle}
                />
            </View>
        );
    }

    /**
     * 单独的item
     * @param rowData
     */
    renderRow(rowData) {
        return (
            <TouchableOpacity
                activeOpacity={0.5}
                onPress={() => {Alert.alert("哈哈")}}>
                <View style={styles.itemStyle}>
                    <Image source={{uri: rowData.icon}} style={styles.iconStyle}/>
                    <Text>{rowData.title}</Text>
                </View>
            </TouchableOpacity>
        );
    }

}

const styles = StyleSheet.create({
    container: {
        flex: 1,
        backgroundColor: '#F5FCFF',
    },
    iconStyle: {
        width: 100,
        height: 100,
    },
    listViewStyle: {
        flexDirection: 'row',
        flexWrap: 'wrap'
    },
    itemStyle: {
        width: itemWH,
        height: itemWH,
        marginLeft:VMargin,
        marginTop:HMargin,
        alignItems:'center'
    }
});

相关文章

网友评论

      本文标题:ListView(2)九宫格

      本文链接:https://www.haomeiwen.com/subject/pfseyqtx.html