/**
* ListView
*/
import React, { Component } from 'react';
import {
Platform,
StyleSheet,
Text,
View,
Image,
ListView,
TouchableOpacity
} from 'react-native';
var Dimensions=require('Dimensions')
var datas=require('./1.json');
export default class ListViewDemo extends Component<{}> {
constructor(props) {
super(props)
//1.设置数据源 固定写法
var ds=new ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2})
//2.设置返回的数据 固定写法
this.state={
dataSource:ds.cloneWithRows(datas)
}
}
render() {
return (
<View style={styles.container}>
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}>
</ListView>
</View>
);
}
//设置每行的item
renderRow(rowData,sectionID,rowID,highlightRow){
return(
<TouchableOpacity activeOpacity={0.6} onPress={()=>{
alert('点击了第'+rowID+"行")
}}>
<View style={styles.rowViewStyle}>
{/*左边的Image*/}
<Image source={{uri:rowData.instrument}} style={styles.leftViewStyle}/>
{/*右边的View*/}
<View style={styles.rightViewStyle}>
<Text style={styles.topTextStyle}>
{rowData.firstName}
</Text>
<Text style={styles.bottomTextStyle}>
{rowData.money}
</Text>
</View>
</View>
</TouchableOpacity>
)
}
}
const styles=StyleSheet.create({
container:{
flex:1, //设置全为1说明它占一份,
backgroundColor:'white'
},
rowViewStyle:{
//整个View的布局
flexDirection:'row',
marginTop:10,
backgroundColor:'white',
alignItems:'center',
borderBottomWidth:0.5,
borderColor:'#e8e8e8',
padding:10
},
leftViewStyle:{
width:70,
height:70
},
rightViewStyle:{
marginLeft:10,
justifyContent:'center'
},
topTextStyle:{
color:'red',
fontSize:18
},
bottomTextStyle:{
marginTop:10,
color:'green'
}
})
Rn ListView实践
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 问题描述 页面1 push 到页面2 页面2 发送监听 刷新页面1 的ListView,不返回页面1 手动返回页...
- 教程说明如何初始化一个redux Store如何使用action+reducer来管理state如何在react-...
- 实现如图所示滚动视图,外层 包裹,里面使用ListView设置数据源。 TopView组件,ScrollView的...