用react-native怎么制作滑动删除的操作
Admin 2022-06-13 群英技术资讯 1272 次浏览
这篇文章给大家介绍了“用react-native怎么制作滑动删除的操作”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。购物车的功能基本上电商项目都会有的,这是一篇关于react-native的,原生android的已经好久没写了。记得以前写原生购物车的时候,遇到过产品的灵魂质问,为啥iOS的滑动删除可以,android却那么难实现的。这个时候,我就打开微信说,android的微信版也是长按进行操作,iOS的是滑动操作的,两个平台自带的系统交互操作是不一样的。当然,最后还是默默的找各种三方库去进行滑动删除。
rn的项目也是找的网上的一个三方库进行列表滑动操作的,github地址react-native-swipe-list-view
最基本的使用方法和flatList差不多,data 属性数组数据源,renderItem 从data中挨个取出数据并渲染到列表中
<SwipeListView
data={this.state.listViewData}
renderItem={this.renderItem}
keyExtractor={this.keyExtractor}
/>
这时候是不可以左右滑动的,就跟普通的flatList效果一样。加上renderHiddenItem属性,可以左右滑动。renderHiddenItem渲染的就是隐藏的内容,隐藏的内容位置是通过flex布局来控制,下面这个例子使用横向布局,通过space-between将内容控制在左右两边,形成了左右滑动时出现隐藏内容。
//这是左右都可以滑动的
renderHiddenItem = (data, rowMap) => {
return <View style={{
flex: 1,
flexDirection: 'row',
justifyContent: 'space-between'
}}>
<Text>Left</Text>
<Text>Right</Text>
</View>
}
我们这边只需要可以左滑,通过justifyContent: 'flex-end'属性将删除按钮内容置于最右边,同时设置SwipeListView的属性disableRightSwipe来禁止右滑操作。
renderHiddenItem = (data, rowMap) => {
return <View style={{
flex: 1,
flexDirection: 'row',
justifyContent: 'flex-end',
}}>
<TouchableOpacity style={{
backgroundColor: '#FF496C',
width: 80,
justifyContent: 'center',
alignItems: 'center'
}}>
<Text style={{color:'#fff'}}>删除</Text>
</TouchableOpacity>
</View>
}
这个时候向左滑,可以看到右边的删除按钮出来了,但是没有一直处于打开状态,还需要添加rightOpenValue={-80}属性,使其处于打开状态。
<SwipeListView
disableRightSwipe
data={this.state.listViewData}
renderItem={this.renderItem}
keyExtractor={this.keyExtractor}
renderHiddenItem={this.renderHiddenItem}
rightOpenValue={-80}
/>
另外有一个需要注意的是,renderItem进行列表渲染时,最外层的视图,官方推荐使用可点击响应触摸的,而不是<View/>,正常情况是,打开了一个视图,点其他视图,默认会关闭打开的那一项,如果最外层是<View/>则不会有这种效果。
//最外层是 TouchableHighlight
renderItem = ({item, index}, rowMap) => {
return <TouchableHighlight
onPress={() => {
}}
underlayColor={'#fff'}>
...
</TouchableHighlight>
}
至此,滑动删除的效果已经基本满足了,后续就是业务逻辑,增删操作数据源刷新页面了。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录前言Promise.all基础学习Iterator 接口参数思路分析源码实现Promise.allSettled基础学习思路分析源码实现Promise.race基础学习思路分析源码实现Promise.any基础学习思路分析源码实现前言恰逢 Promise 也有四个很像的静态三兄弟(Promise.all、Promi
这篇文章主要为大家详细介绍了Vue实现可复用轮播组件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
下面小编就为大家分享一篇详谈DOM的简介,节点和获取元素,具有非常好的参考价值,一起跟随小编过来看看吧,希望对大家有所帮助
Structs是RUST中比较常见的自定义类型之一,又可以分为StructStruct,TupleStruct,UnitStruct三个类型,结合泛型、Trait限定、属性、可见性可以衍生出很丰富的类型。结构体1.定义pub struct User{ user_id : u32, user_name: St
这篇文章我们来了解jQuery删除兄弟节点的相关内容,下文分享的示例是如何删除指定元素后的兄弟节点的方法,文中有很详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008