//导入json数据
var Heros = require('./heros.json');//数组
var Dimensions = require('Dimensions');
var {width} = Dimensions.get('window');
export default class Demo extends Component {
//构造函数中初始化数据
constructor(props){
super(props);
var ds = new ListView.DataSource({rowHasChanged:(r1,r2)=>r1 !== r2});
this.state={
dataSource:ds.cloneWithRows(Heros)
};
}
render() {
return (
<ListView
style={{marginTop:25}}
dataSource = {this.state.dataSource}//设置数据源
renderRow = {this.renderRow}
/>
);
}
//返回具体的Cell
renderRow(rowData, sectionID, rowID, highlightRow){
return(
<TouchableOpacity activeOpacity={0.5}
onPress={()=>{AlertIOS.alert('购买成功!','成功解锁'+rowData.name+'英雄!')}}
>
<View style={styles.cellViewStyle}>
{/*左边的图片*/}
<Image source={{uri:rowData.image}} style={styles.leftImageStyle}/>
{/*右边的View*/}
<View style={styles.rightViewStyle}>
{/*上面是英雄名称*/}
<Text style={styles.topTitleStyle}>{rowData.name}</Text>
{/*下面是英雄描述*/}
<Text style={styles.bottomTitleStyle}
numberOfLines={3}
>{rowData.title}</Text>
</View>
</View>
</TouchableOpacity>
)
}
}
const styles = StyleSheet.create({
cellViewStyle:{
//分割线
borderBottomWidth:0.5,
borderBottomColor:'#e8e8e8',
//cell内部缩一下
padding:10,
//主轴横过来
flexDirection:'row'
},
leftImageStyle:{
width:60,
height:60,
marginRight:15
},
rightViewStyle:{
},
topTitleStyle:{
fontSize:20,
},
bottomTitleStyle:{
width:width * 0.7,
marginTop:8
}
});
React Native 之ListView1
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- react-native-storage是封装好的数据存储组件,安装方法见:https://github.com/...
- 做一个有情怀的程序员 在项目开发中,为了提高项目的逼格和美观度,我们经常需要使用的各式各样的图标,常用的手段就是美...
- 一. 简介 开发项目中可能会有用到侧边栏,今天说一下react-native-side-menu.github地址...
- RN开发中难免会用到图标,今天我们来集成github上比较受欢迎的一个强大的icons库。 先上效果图 源码已分享...
- 一. 简介 这节介绍下使用第三方轮播组件react-native-swiper,github地址:https://...