React Native控件之Listview

ListView组件用于显示一个垂直的滚动列表,其中的元素之间结构近似而仅数据不同。

ListView更适于长列表数据,且元素个数可以增删。和ScrollView不同的是,ListView并不立即渲染所有元素,而是优先渲染屏幕上可见的元素。

ListView组件必须的两个属性是dataSourcerenderRowdataSource是列表的数据源,而renderRow则逐个解析数据源中的数据,然后返回一个设定好格式的组件来渲染。

下面的例子创建了一个简单的ListView,并预设了一些模拟数据。首先是初始化ListView所需的dataSource,其中的每一项(行)数据之后都在renderRow中被渲染成了Text组件,最后构成整个ListView

rowHasChanged函数也是ListView的必需属性。这里我们只是简单的比较两行数据是否是同一个数据(===符号只比较基本类型数据的值,和引用类型的地址)来判断某行数据是否变化了。

import React, { Component } from 'react';
import { AppRegistry, ListView, Text, View } from 'react-native';

class ListViewBasics extends Component {
  // 初始化模拟数据
  constructor(props) {
    super(props);
    const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    this.state = {
      dataSource: ds.cloneWithRows([
        'John', 'Joel', 'James', 'Jimmy', 'Jackson', 'Jillian', 'Julie', 'Devin'
      ])
    };
  }
  render() {
    return (
      <View style={{paddingTop: 22}}>
        <ListView
          dataSource={this.state.dataSource}
          renderRow={(rowData) => <Text>{rowData}</Text>}
        />
      </View>
    );
  }
}

// 注册应用(registerComponent)后才能正确渲染
// 注意:只把应用作为一个整体注册一次,而不是每个组件/模块都注册
AppRegistry.registerComponent('ListViewBasics', () => ListViewBasics);

ListView的一个常用场景就是从服务器端取回列表数据然后显示,要实现这一过程,你可能还需要学习React Native的网络相关用法.

时间: 2024-10-31 18:39:26

React Native控件之Listview的相关文章

listview-怎样让上面的控件和Listview一起滑动

问题描述 怎样让上面的控件和Listview一起滑动 一个页面上有ListView,listView上面有其他控件,怎样让上面的控件和Listview一起滑动 解决方案 方法一:listview.addheadview,把那些控件作为headview添加到listview方法二:计算listview的高度(这里需要list中的item高度是固定的,textview这种要设定行数,不能高度可变),外套一层ScrollView 解决方案二: listview.addheadview,把那些控件作为h

重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView

原文:重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView [源码下载] 重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 ListView 和 GridView ListView - 列表控件 GridView - 网格控件 示例1.ListView 的 DemoListViewDemo.x

Android控件之ListView用法实例详解_Android

本文实例讲述了Android控件之ListView用法.分享给大家供大家参考.具体如下: 示例一: 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示. main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" androi

Android控件之ListView用法实例详解

本文实例讲述了Android控件之ListView用法.分享给大家供大家参考.具体如下: 示例一: 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示. main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" androi

WinJS ListView控件详解

您有数据, 很多数据. 您需要以如下方式呈现这些数据,即用户可以毫不费 力地在应用程序中访问和理解数据. 应用程序以新闻文章.配方.赛事比分.财 务图表等形式公开其数据,所有数据都呈现在屏幕上大小不同的区域中,尽量吸 引使用者的注意. 由于小型到中型数据网格便于人们使用.搜索和筛选,现在市 场上众多应用程序大都以较为合理的网格或列表格式呈现数据. 无论是企业应用 程序.个人应用程序还是其他应用程序,网格都是支撑数据快速浏览的基本框架 . 在 Windows 应用商店的应用中,通过使用 ListV

Windows 8风格应用开发入门 五 ListView数据控件

什么是ListView数据控件? 1) ListView数据控件用来显示数据集合. 2) 继承自ItemsControl. 3) 大多数情况是纵向显示数据,显示的数据通常是排序过的. 4) 在切换到Snap View(贴靠视图)时,通常使用ListView显示数据集合. 开发入门 五 ListView数据控件-vba listview 控件"> 如何构建ListView数据控件? 首先我们需要了解一下ListView控件中一些重要属性和事件: 1) IsItemClickEnabled属性

Android开发入门(十二)列表控件 12.3 ListView的总结范例

使用一个例子,来总结一下ListView的基本使用. 1. 新建一个工程:ListViewDemo. 2. main.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pare

Android开发入门(十二)列表控件 12.1 ListView的基本使用

今天总结一下Android中的列表控件:ListView和Spinner. ListView可以垂直并可滑动地地显示 一些信息.下面阐述如何使用ListView显示一系列的信息. 1. 创建一个工程:BasicViews5. 2. strings.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">He

Android ListView中子控件的状态保存以及点击子控件改变子控件状态

这两天用到了ListView,写下遇到的一些问题.首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性: [html] view plaincopy android:descendantFocusability="blocksDescendants"   用于屏蔽子控件抢夺ListView的焦点,也可在Button本身设置焦点属性为false.其它的一些控件的点击问题就不说了,网上有很多. 然后是需