React-Native基础_5.列表视图ListView 网络数据展示
//获取网络数据 并用列表展示 豆瓣Top250 api /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ 'use strict' import React, {Component} from 'react'; import { AppRegistry, StyleSheet, Text, Image, View, ListView, } from 'react-native'; //import {AppRegistry,} from 'react-native'; //import Day0718 from './componets/Home' let REQUEST_URL = 'https://api.douban.com/v2/movie/top250'; export default class Day0718 extends Component { constructor(props) { super(props); this.state = { dataSource:new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}), loaded: false, }; } componentDidMount(){ this._fetchData(); } _fetchData(){ fetch(REQUEST_URL) .then(response => response.json()) .then(responseData =>{ this.setState({ movies:this.state.dataSource.cloneWithRows(responseData.subjects), loaded: true, }); }) .done(); } render() { if(!this.state.loaded){ return this._renderLoadingView(); } return ( <View style={styles.Container}> <ListView dataSource={this.state.movies} renderRow={this._renderMovieList} style={styles.listView} /> </View> ); } _renderMovieList(movie){ return( <View style = {styles.item}> <View style = {styles.itemImage}> <Image style ={styles.image} source ={{uri:movie.images.large}}/> </View> <View style = {styles.itemContent}> <Text style ={styles.itemHeader}>{movie.title}</Text> <Text style ={styles.itemMeta}>{movie.original_title}({movie.year})</Text> <Text style ={styles.redText}>{movie.rating.average}</Text> </View> </View> ); }; _renderLoadingView(){ return ( <View style ={styles.loading}> <Text > loading movies.....</Text> </View> ); }; } const styles = StyleSheet.create({ item:{ flexDirection:'row', borderBottomWidth:1, borderColor:'rgba(100,53,201,0.1)', paddingBottom:6, marginBottom:6, flex:1, }, itemContent:{ flex:1, marginLeft:13, marginTop:6, }, itemHeader:{ fontSize:18, fontFamily:'Helvetica Neue', fontWeight:'300', color:'#6435c9', marginBottom:6, }, itemMeta:{ fontSize:16, color:'rgba(0,0,0,0.6)', marginBottom:6, }, redText:{ color:'#db2828', }, listView:{ paddingTop: 20, backgroundColor: '#F5FCFF', }, loading:{ flex:1, justifyContent:'center', alignItems:'center', }, overlay: { backgroundColor: 'rgba(0,0,0,0.3)', alignItems: 'center' }, overlayHeader: { fontSize: 33, fontFamily: 'Helvetica Neue', fontWeight: '200', color: '#eae7ff', padding: 10 }, overlaySubHeader: { fontSize: 16, fontFamily: 'Helvetica Neue', fontWeight: '200', color: '#eae7ff', padding: 10, paddingTop: 0, }, backImage: { // alignItems:'center', flex: 1, //justifyContent:'center', resizeMode: 'cover', }, image: { height: 150, width: 100, justifyContent: 'center', }, itemOne: { // alignSelf:'flex-start', }, itemTwo: { //alignSelf:'center', }, itemThree: { flex: 2, }, itemText: { fontSize: 33, fontFamily: 'Helvetica Neue', fontWeight: '200', color: '#6435c9', padding: 30, }, Container: { //alignItems:'flex-start',// flex-start 靠在左边显示 center 居中 flex-end 尾部 // flexDirection: 'column',//row column 方向 backgroundColor: '#eae7ff', flex: 1, //justifyContent:'center',//center ; 居中 flex-end 位于底部 space-between/space-around屏幕平均分配 }, Text: { color: '#6435c9', fontSize: 26, textAlign: 'center', fontStyle: 'italic', letterSpacing: 2, lineHeight: 33, fontFamily: 'Helvetica Neue', fontWeight: '300', textDecorationLine: 'underline', textDecorationStyle: 'dashed', }, }); class ComText extends React.Component { render() { return ( <Text style={styles.itemText}> {this.props.children} </Text> ); } } AppRegistry.registerComponent('Day0718', () => Day0718);
请求豆瓣Top250数据,解析到ListView上展示
-----------------------------期待大神们的到来
------------------------一---起分享,一起进步!需要你们
React-Native基础_5.列表视图ListView 网络数据展示的更多相关文章
- React-Native基础_5.列表视图ListView
列表视图ListView 用来显示垂直滚动列表,需要指定两个东西,1 数据的来源 dataSource,2 渲染列表的条目布局 rendRow 'use strict' import React, { ...
- React Native基础&入门教程:初步使用Flexbox布局
在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小 ...
- react native基础与入门
react native基础与入门 一.react native 的优点 1.跨平台(一才两用) 2.低投入高回报 (开发成本低.代码复用率高) 3.性能高:拥有独立的js渲染引擎,比传统的h5+ w ...
- 跨平台框架与React Native基础
跨平台框架 什么是跨平台框架? 这里的多个平台一般是指 iOS 和 Android . 为什么需要跨平台框架? 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平 ...
- React Native填坑之旅--ListView篇
列表显示数据,基本什么应用都是必须.今天就来从浅到深的看看React Native的ListView怎么使用.笔者写作的时候RN版本是0.34. 最简单的 //@flow import React f ...
- Android 自学之列表视图ListView和ListActivity
ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...
- Android——列表视图(ListView)
列表视图是android中最常用的一种视图组件,它以垂直列表的形式列出需要显示的列表项.在android中有两种方法向屏幕中添加列表视图:一种是直接使用ListView组件创建:另外一种是让Activ ...
- 滚动视图、列表视图[ListView、SimpleAdapter类]
滚动视图 <ScrollView android: layout_width="fill_parent" android: layout_height="fill_ ...
- React Native基础&入门教程:调试React Native应用的一小步
React Native(以下简称RN)为传统前端开发者打开了一扇新的大门.其中,使用浏览器的调试工具去Debug移动端的代码,无疑是最吸引开发人员的特性之一. 试想一下,当你在手机屏幕按下一个按钮, ...
随机推荐
- Linux读书笔记1/2章
linux的内核设计: 第一章 1.1Linux历史: 历经时间的考验,今天Unix已经发展成一个支持抢占式多任务.多线程.虚拟内存.换页.动态链接.TCP/Ip网络的现代化操作系统. 1.2追寻Li ...
- Python-自省机制
help 如果说能够通过一个函数就能够学会 Python,那这个函数一定就是 Python 提供的第一 个自带说明 help().help 函数的作用就是查看对象的帮组文档.比如: >> ...
- [NOIP2017]时间复杂度
题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...
- js去除前后空格
<script language="javascript"> String.prototype.trim=function(){ return this.rep ...
- Permission denied: mod_fcgid
[Tue Jun 16 13:29:08 2015] [warn] (13)Permission denied: mod_fcgid: spawn process /var/www/cgi-bin/g ...
- LeetCode——4Sum
1. Question Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + ...
- Linux用户及权限分配
一.用户分类 所有者 u; 所属组 g; 其它用户 o; 所有用户 a; 二.用户管理 //查看用户 id user //添加用户 useradd user //设置密码 passwd user // ...
- base64 原理
Base64编码之所以称为Base64,是因为其使用64个字符来对任意数据进行编码,同理有Base32.Base16编码.标准Base64编码使用的64个字符为: 这64个字符是各种字符编码(比如AS ...
- 【乱码】Request QueryString 编码,传值乱码的几种情况和解决办法(单页,多页)
自己的项目还好,合作接口神马的传值乱码是很常见的. 遇到了几次这种恶心情况,积累了一点经验,有不对的地方欢迎指正. 乱码原因: 一般来说,常用的编码不是utf-8就是gb2312,一样的 HttpUt ...
- Nagios安装完后status map,trends等页面访问出错之解决
首先,可以进入/usr/local/nagios/sbin, [root@localhost sbin]# ldd statusmap.cgi linux-vdso.so. => (0x0000 ...