SwipeableFlatList 实现类似于QQ列表滑动
import React, { Component } from "react";
import {
  FlatList,
  RefreshControl,
  StyleSheet,
  Text,
  View,
  ActivityIndicator,
  SwipeableFlatList,
  TouchableHighlight,
} from "react-native";
const CITY_NAMES = [
  "河北省石家庄市",
  "河北省唐山市",
  "山西省太原市",
  "内蒙包头市",
  "辽宁省大连市",
  "黑龙江省齐齐哈尔市",
  "江苏省徐州市",
  "浙江省杭州市",
  "福建省福州市",
  "江西省南昌市",
  "山东省济南市",
  "山东省青岛市",
  "甘肃省兰州市",
  "新疆乌鲁木齐市"
];
export default class SwipeableFlatListDemo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isLoading: false,
      dataArray: CITY_NAMES
    };
  }
  _renderItem(data) {
    return (
      <View style={styles.item}>
        <Text style={styles.text}>{data.item}</Text>
      </View>
    );
  }
  loadData(refreshing) {
    if(refreshing){
      this.setState({
        isLoading: true
      });
    }
    setTimeout(() => {
      let dataArray = [];
      if(refreshing){
        for (let i = this.state.dataArray.length - 1; i >= 0; i--) {
          dataArray.push(this.state.dataArray[i]);
        }
      }else{
        dataArray = this.state.dataArray.concat(CITY_NAMES);
      }
      this.setState({
        dataArray: dataArray,
        isLoading: false
      });
    }, 1000);
  }
  genIndicator() {
    return <View style={styles.indicatorContainer}>
        <ActivityIndicator
          style={styles.indicator}
          size={"large"}
          animating={true}
        />
        <Text>正在加载更多</Text>
      </View>
  }
  genQuickActions(){
    return <View style={styles.quickContainer}>
      <TouchableHighlight
        onPress={()=>{
          alert('Delete?');
        }}
      >
        <View style={styles.quick}>
          <Text style={styles.text}>Delete</Text>
        </View>
      </TouchableHighlight>
    </View>
  }
  render() {
    return (
      <View style={styles.container}>
        <SwipeableFlatList
          data={this.state.dataArray}
          renderItem={data => this._renderItem(data)}
          refreshControl={
            <RefreshControl
              title={"Loading"}
              colors={["red"]}
              tintColor={["blue"]}
              refreshing={this.state.isLoading}
              onRefresh={() => {
                this.loadData(true);
              }}
            />
          }
          ListFooterComponent={() => this.genIndicator()}
          onEndReached={()=>this.loadData()}
          renderQuickActions={()=>this.genQuickActions()}
          maxSwipeDistance={100}
        />
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1
  },
  item: {
    backgroundColor: "#169",
    height: 100,
    marginRight: 15,
    marginLeft: 15,
    marginBottom: 15,
    alignItems: "center",
    justifyContent: "center"
  },
  text: {
    color: "white",
    fontSize: 20
  },
  indicatorContainer: {
    alignItems: "center"
  },
  indicator: {
    color: "red",
    margin: 10
  },
  quickContainer:{
    flex:1,
    flexDirection:"row",
    justifyContent:'flex-end',
    marginRight:15,
    marginBottom:15,
  },
  quick:{
    backgroundColor:'red',
    flex:1,
    alignItems:'flex-end',
    justifyContent: 'center',
    padding:10,
    width:200,
  }
});效果图

SwipeableFlatList 实现类似于QQ列表滑动的更多相关文章
- [Phonegap+Sencha Touch] 移动开发72 List列表横向滑动操作(仿QQ列表滑动删除)
		原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50425744 本插件有2个版本号:sencha touch 版本号和 extjs6 m ... 
- Android 编程下代码之(QQ消息列表滑动删除)
		这份代码写出来有些时候了,一直没共享,现在把它共享给大家.简单列一下代码中你可以学到的知识点: 自定义控件的实现方式: 事件的拦截分发消费机制: QQ会话列表滑动删除原理: 最后附上源码链接:Q ... 
- Android-自定义仿QQ列表Item滑动
		效果图: 布局中去指定自定义FrameLayout: <!-- 自定义仿QQ列表Item滑动 --> <view.custom.shangguigucustomview.MyCust ... 
- iOS tableViewCell 在cell赋值、网络加载照片位置偏移大小错乱,做一个类似qq列表的tableview  更新3
		更新3: 问题 加载慢!(一时间给的处理负载过大,要分散)在下载图片,判断状态后 对每个cell对图片灰置图片处理保存,影响了主线程的操作 :上拉加载时,无法上下滑动tableview 无法点击cel ... 
- JS时间轴效果(类似于qq空间时间轴效果)
		在上一家公司写了一个时间轴效果,今天整理了下,感觉有必要写一篇博客出来 给大家分享分享 当然代码还有很多不足的地方,希望大家多指点指点下,此效果类似于QQ空间或者人人网空间时间轴效果,当时也是为了需求 ... 
- 自定义控件--CircleImageView(类似于QQ、微信圆形头像自定义控件)
		现在基本上所有的需要用户注册的APP都有一个需要用户上传头像的需求,上传的头像基本都是类似于QQ.微信等社交应用圆形头像.最近,正在做的一个社交应用多处需要用到这种圆形头像的处理,总不能每次都对图片做 ... 
- 一个关于如何创建类似于QQ客户端聊天窗口的模拟小项目
		对于不久之前学习到的一个有关的类似于QQ聊天框的模拟项目,对其中涉及到的知识在这里做一下总结. 首先,你要先创建一个客户端聊天框(取名为:ChatClient,它是你创建的类),这个类继承了Frame ... 
- 类似于qq空间类型的评论和回复
		最近学习thinkphp,做了一个博客系统,其中感觉实现一个类似于qq空间的评论和回复功能比较复杂,所以把这次的经历记录下来,与大家共勉,具体的方法就不说了,在这里分享一下思路. 目标就是这种,关键是 ... 
- jQuery实现的3个基础案例(仿QQ列表分组,二级联动下拉框,模拟员工信息管理系统)
		1.仿QQ列表分组 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type&quo ... 
随机推荐
- 步步为营-87-imageAreaSelect插件使用(图片剪切)
			1 引用文件 jquery.imgareaselect.min.cs imgareaselect-default.js 2 代码 <%@ Page Language="C#" ... 
- 2018软工实践作业八之UML设计
			1. 团队信息 队名:小白吃队 成员: 后敬甲 031602409 卢泽明 031602328 蔡文斌 031602301 葛亮 031602617 刘浩 031602423 黄泽 031602317 ... 
- Web前端开发:Sublime Text 常用插件
			在安装这些插件之前,确保你已经安装了Package Control. 安装Package Control方法: 通过菜单栏View->Show Console 或者快捷键Ctrl+` 打 ... 
- ubuntu系统查看已安装的软件
			1.查看安装的所有软件 dpkg -l 例如:dpkg -l | grep ftp 2.查看软件安装的路径 dpkg -L | grep ftp 也可以用 whereis ftp 3.查看软件版本 a ... 
- Codeforces 837F Prefix Sums
			Prefix Sums 在 n >= 4时候直接暴力. n <= 4的时候二分加矩阵快速幂去check #include<bits/stdc++.h> #define LL l ... 
- gitlab之五:   gitlab之webhook
			webhook(网络钩子),一般与jenkins联合使用,gitlab的某个项目的代码更新了后就触发 webhook中配置的 url ,这个url一般是某一个jienkins中某一个job的url.即 ... 
- $on在构造器外部添加事件$once执行一次的事件$off关闭事件
			$on 在构造器外部添加事件. $on接收两个参数,第一个参数是调用时的事件名称,第二个参数是一个匿名方法. 如果按钮在作用域外部,可以利用$emit来执行. html <div id=&quo ... 
- ActiveMQ挂了,重启一直无法将所有实例启起来的问题
			背景 2017年3月29日 下午2-3点时分,工单模块无法访问.跟踪日志发现,ActiveMQ连接不上导致整个工单模块瘫痪: 首先判断可能是系统需要然后尝试重启工单模块,重新启动工单模块,结果:重启 ... 
- 蓝桥杯  跳蚱蜢 (bfs)
			转载自:https://blog.csdn.net/wayway0554/article/details/79715658 本题的解题关键就在于将蚱蜢在跳转换为盘子在跳. 当使用string当做每一个 ... 
- scrapy Formrequest用法(豆瓣登录案例)
			# -*- coding: utf-8 -*-import scrapyfrom scrapy.http import Request,FormRequest class DbSpider(scrap ... 
