import React, { useEffect, useState } from 'react' import { View, Text, StyleSheet } from 'react-native'; import deviceWidth from '../utils/deviceWidth'; import Radio from '../radio'; import Virtuallist from '.'; import { useTranslate } from '../utils'; const ListDemo = () => { const [translated] = useTranslate({ 'zh-CN': { text1: '垂直等高', text2: '垂直不等高', text3: '水平等宽', text4: '水平不等宽', }, 'zh-TW': { text1: '縱向等高', text2: '縱向不等高', text3: '水平等寬', text4: '水平不等寬', }, 'en-US': { text1: 'Vertical equal height', text2: 'Vertical unequal height', text3: 'Horizontal equal width', text4: 'Horizontal unequal width', }, }) const [data, setData] = useState([]) const [mHorizontal, setMHorizontal] = useState(false) const [equal, setEqual] = useState(true) useEffect(() => { getData(); }, []) const getData =()=>{ const datas = []; for (let i = 0; i < 150; i++) { datas.push( { index: i } ); } setData(datas) } const renderItem=(item:any) => { if (mHorizontal) { if (equal) { return ( list{item.index} ); } else { if (item.index % 2 === 0) { return ( list{item.index} ); } else { return ( list{item.index} ); } } } else { if (equal) { return ( list{item.index} ); } else { if (item.index % 2 === 0) { return ( list{item.index} ); } else { return ( list{item.index} ); } } } } const RadioChange=(value : any) => { let mHor = false; let mEqual = true; switch (value) { case 1: mHor = false; mEqual = true; break; case 2: mHor = false; mEqual = false; break; case 3: mHor = true; mEqual = true; break; case 4: mHor = true; mEqual = false; break; default: mHor = false; mEqual = true; break; } setMHorizontal(mHor); setEqual(mEqual); } return ( { RadioChange(value); }} > {translated.text1} {translated.text2} {translated.text3} {translated.text4} ); } const styles = StyleSheet.create({ items: { width: deviceWidth - 40, paddingVertical: 10, paddingHorizontal:20, marginHorizontal: 20, backgroundColor: '#fff', borderRadius: 8, justifyContent: 'center' }, equalV: { width: deviceWidth - 40, marginLeft: 20, backgroundColor: '#fff', height: 45, justifyContent: 'center', marginBottom: 10, borderRadius: 6, paddingLeft: 10 }, equalH: { width: 50, height: 45, marginLeft: 20, backgroundColor: '#fff', justifyContent: 'center', marginBottom: 10, borderRadius: 6, paddingLeft: 10 } }); export default ListDemo