React Native学习(七)—— FlatList实现横向滑动列表效果
本文基于React Native 0.52
Demo上传到Git了,有需要可以看看,写了新内容会上传的。Git地址 https://github.com/gingerJY/React-Native-Demo
一、总览
这个效果也是APP里很常见的,之前把这个想的太复杂了,后来才知道原来用FlatList就可以轻松实现,效果图如下(专题精选):
二、代码实现
1、加几条数据
topic: [{title: '岁末清扫有它们,体验大不同',describe: '更轻松、更美好的大扫除攻略',price: '9.9元起',},{title: '新年一点红,幸运一整年',describe: '那些让你“红”运当头的好物',price: '9.9元起',},
]
2、写列表的一个item
renderTopicItem = ({ item }) => {return (<TouchableOpacity style={styles.topicItem}><Image source={require('../../img/topic.jpg')} style={styles.topicImg} /><View style={styles.topicContainer}><View style={styles.topicText}><Text style={styles.topicTitle}>{item.title}</Text><Text style={styles.topicDesc}>{item.describe}</Text></View><Text style={styles.topicPrice}>{item.price}</Text></View></TouchableOpacity>)}
3、用FlatList渲染出列表
renderTopic() {return (<View style={styles.topic}><Text style={styles.topicHead}>专题精选</Text><FlatListdata={this.state.topic}keyExtractor={(item, index) => index}renderItem={this.renderTopicItem}horizontal={true}showsHorizontalScrollIndicator={false}/></View>)
}
- data —— 数据(目前只支持普通数组)
- renderItem —— 根据行数据data渲染每一行的组件
- keyExtractor —— 用于为给定的item生成一个不重复的key(Key的作用是使React能够区分同类元素的不同个体,以便在刷新时能够确定其变化的位置,减少重新渲染的开销)
- horizontal —— 设为true时是水平布局
- showsHorizontalScrollIndicator —— 设为false,则不显示水平滚动条
4、样式
topic: {width: width,alignItems:'center',backgroundColor: '#fff',paddingBottom:10,marginBottom:10,},topicHead:{fontSize:16,color:'#666',padding:15,},topicItem: {width: width*0.7,marginLeft:15,},topicImg: {width: width*0.7,height: width*0.4,borderWidth:0.5,borderColor:'#cdcdcd',borderRadius:2,},topicContainer:{flexDirection: 'row',justifyContent:'space-between',marginTop:10,},topicTitle:{fontSize:16,color:'#666',},topicDesc:{fontSize:13,color:'#999',marginTop:3,},topicPrice:{fontSize:14,color:'#b4282d',},
recommend.js完整代码 https://github.com/gingerJY/example/blob/master/RN_flatList/recommend.js
三、其他
这种也是用 FlatList 做的,写法都差不多,具体看https://github.com/gingerJY/React-Native-Demo
END-----------------------------------------------------------------
转载于:https://www.cnblogs.com/MaiJiangDou/p/8351288.html
React Native学习(七)—— FlatList实现横向滑动列表效果相关推荐
- 实现移动端touch事件的横向滑动列表效果
要实现手机端横向滑动效果并不难,了解实现的原理及业务逻辑就很容易实现.原理:touchstart(手指按下瞬间获取相对于页面的位置)-->touchmove(手指移动多少,元素相应移动多少). ...
- React Native学习五- FlatList
高性能的简单列表组件,支持下面这些常用的功能: 完全跨平台. 支持水平布局模式. 行组件显示或隐藏时可配置回调事件. 支持单独的头部组件. 支持单独的尾部组件. 支持自定义行间分隔线. 支持下拉刷新. ...
- React Native 学习资源精选仓库
<React Native Awesome>这里fork过来的,汇集了各类react-native学习资料.工具.组件.开源App.资源下载.以及相关新闻等,只求精不求全.因后面无法 Pu ...
- React Native 学习资源精选仓库(汇聚知识,分享精华)
React Native 学习资源精选仓库(汇聚知识,分享精华) <React Native Awesome>这里fork过来的,汇集了各类react-native学习资料.工具.组件.开 ...
- React Native学习提纲
React Native学习提纲 当前版本最后修订日期: 2015年10月21日 一. React.js入门基础 1.基础HTML/CSS与基础开发工具使用 - html基础 doctype.常用标签 ...
- Android横向滚动卡片,Android实现横向滑动卡片效果
Android实现横向滑动卡片效果 发布时间:2020-09-04 22:51:17 来源:脚本之家 阅读:255 作者:itbobby 最近项目上需要实现这样效果的一个页面,本来想找个现成的两下搞定 ...
- react native学习笔记13——FlatList上拉加载
我们可以利用官方组件RefreshControl实现下拉刷新功能,但React Native官方没有提供相应的上拉加载的组件,因此在RN中实现上拉加载比下拉刷新要复杂一点. 虽然没有直接提供上拉加载的 ...
- React Native学习速记
学习路线建议:ES5/6 -> React -> React Native -> Redux + React-Navigation等 ES5 :https://wangdoc.co ...
- react native学习笔记29——动画篇 Animated高级动画
1.前言 上一节我们学习了全局的布局动画api--LayoutAnimation,体验到其流畅柔和的动画效果,但有时我们需要实现一些更精细化的动画,或者完成一些组合动画,这时我们可以使用React N ...
最新文章
- 神经网络通用近似定理
- 我的Chrome常用快捷键
- 【机器学习PAI实践二】人口普查统计
- linux iconv
- JS特效——鼠标跟随特效——动态背景线条跟随鼠标移动
- c语言在一个文件后面添加数据类型,c语言简单入门之简单运行和数据类型
- windows下buildbot 的搭建及config文件讲解
- 北京联合大学计算机学院在哪个校区,北京联合大学各校区联系地址大全
- 云开发听说过没? Compilr 屌爆的在线开发工具 -_-#
- Namebase 给 GitHub 开发者白送钱,是拉新还是投资骗局?
- 计算机硬件调查PPT,调查报告 ppt
- 【CITE】C#默认以管理员身份运行程序实现代码
- 传智播客 C/C++学习笔记 函数调用 模型
- VS2003驱动开发环境配置
- iOS7以上: 实现如“日历”的 NavigationBar
- Java面向对象编程 实验报告
- Via板载声卡底噪严重、播放卡顿及耳机与扬声器音源切换问题【解决方法】
- 计算机考试科目一模拟试题,学车科目一模拟考试,最全答题知识点,送给准备考驾照的你...
- 解读《道德经》nbsp;五十六章nbsp;知者不言…
- layUI自定义列表每页条数
热门文章
- memcache windows64 位安装
- 黄聪:如何使用CodeSmith批量生成代码(转:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html)...
- Ftp上传类(FtpClient)
- mysql userstat_mysql 中记录用户登录错误日志方法小结
- listview 打开文件 c#_.NET CORE(C#) WPF简单菜单MVVM绑定
- java循环使用范围_Java循环流程控制语句
- 单调谐回路谐振放大器等效电路分析_谐振回路的工作原理
- mysql行转列和列转行_mysql 行转列和列转行实例详解
- VS中stack around the variable ‘****‘ was corrupted堆栈被破坏
- 矩阵相乘原理与C实现(实矩阵)