问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在安卓手机微信小程序里实现Flex布局

发布网友 发布时间:2022-04-24 16:40

我来回答

1个回答

热心网友 时间:2022-04-06 14:26

最初打算使用scroll-view实现,效果好、流畅、有惯性滑动,但由于滚动条没法去掉、无法实现上下层的帧布局,最终放弃了。 还是自己写个吧,利用手势事件。遗憾的是小程序中目前没有像Android中快速滑动事件,所以,要实现惯性滑动是不可能了。 item的布局: 推荐小程序优先使用flex布局,完全够用。这也是微信推荐的。 <view wx:for="{{cardTeams}}" wx:for-item="cardTeam" id="{{cardTeam/images/20150928/tooopen_sy_143912755726.jpg" mode="scaleToFill"></image> <view class="number-wrapper"> <text class="name">{{cardTeam.name}}</text> <view class="count-wrapper"> <view class="decrease-btn">-</view> <text class="count">1</text> <view class="increase-btn">+</view> </view> <view class="price-wrapper"> <text class="unit">¥</text> <text class="price">99.80</text> </view> </view> <view class="ok"><view class="inner-ok">确定</view></view> <view class="remove" data-id="{{cardTeam.id}}" bindtap="delItem"><view>删除</view></view> </view> 主要是将删除按钮的设为绝对定位(position: absolute): .item .remove{ width: 60px; height: 100%; background-color: red; position: absolute; top: 0; right: -60px; display: flex; justify-content: center; align-items: center; } Page({ data: { cardTeams:[{"id":"aaaaa", "name":"android教程", "url":"", "right":0, "startRight":0},{"id":"bbbb", "name":"小程序教程", "url":"", "right":0, "startRight":0}] }, drawStart : function(e){ // console.log("drawStart"); var touch = e.touches[0]; startX = touch.clientX; startY = touch.clientY; var cardTeams = this.data.cardTeams; for(var i in cardTeams){ var data = cardTeams[i]; data.startRight = data.right; } key = true; }, drawEnd : function(e){ console.log("drawEnd"); var cardTeams = this.data.cardTeams; for(var i in cardTeams){ var data = cardTeams[i]; if(data.right <= 100/2){ data.right = 0; }else{ data.right = maxRight; } } this.setData({ cardTeams:cardTeams }); }, drawMove : function(e){ //console.log("drawMove"); var self = this; var dataId = e.currentTarget.id; var cardTeams = this.data.cardTeams; if(key){ var touch = e.touches[0]; endX = touch.clientX; endY = touch.clientY; console.log("startX="+startX+" endX="+endX ); if(endX - startX == 0) return ; var res = cardTeams; //从右往左 if((endX - startX) < 0){ for(var k in res){ var data = res[k]; if(res[k].id == dataId){ var startRight = res[k].startRight; var change = startX - endX; startRight += change; if(startRight > maxRight) startRight = maxRight; res[k].right = startRight; } } }else{//从左往右 for(var k in res){ var data = res[k]; if(res[k].id == dataId){ var startRight = res[k].startRight; var change = endX - startX; startRight -= change; if(startRight < 0) startRight = 0; res[k].right = startRight ; } } } self.setData({ cardTeams:cardTeams }); } }, //删除item delItem: function(e){ var dataId = e.target.dataset.id; console.log("删除"+dataId); var cardTeams = this.data.cardTeams; var newCardTeams = []; for(var i in cardTeams){ var item = cardTeams[i]; if(item.id != dataId){ newCardTeams.push(item); } } this.setData({ cardTeams:newCardTeams }); }, onLoad: function () { console.log('onLoad:'+app.globalData.domain) } }) drawStart用于记录手指触碰时的位置,drawMove记录手指滑动的位置,两者的差值就是删除按钮的偏移量 drawEnd手指抬起时触发,用于设置弹回、摊开效果。目前我的是超过一半自动弹开,不足一半自动收回。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的电器到成都,请问一下,那个航空快一些呀,多少/公斤? 前女友和我分手一年之后,出车祸死了,我很高兴,这种心理是不是不... 为什么听到前女友去世的消息,我竟然放声大哭,她很爱我,是我对她腻了... 兰州银行充天然气必须要本行卡吗 从服饰礼仪看中西方文化差异 为什么iqoo11评价那么低? 相机快门线的运用范围 快门线是干什么用的 请问这是什么虫子 还挺硬的 在楼房内 整理箱上面发现的 屋内有木质上... 请问这是什么虫子?家里抓到,2cm左右。坐标北京,昌平,冬季12月,楼房... 手机淘宝怎么查看钱款去向 手机淘宝查看钱款去向方法 如何编辑微信小程序隐藏效果? 怎么查看淘宝退款的钱 国寿瑞鑫盛典版2021怎么样?怎么买? 20岁时购买了一份国寿瑞鑫两全保险(分红型),年交10540元,保险保额是50000,保险期间是 国寿瑞鑫盛典版2021靠不靠谱?怎么买划算? 国寿瑞鑫盛典版2021值得入手吗?靠谱吗? 国寿瑞鑫盛典版2021有没有坑?怎么买? 中国人寿国寿瑞鑫二全保险(分红型)每年交2814块,交20年,现在我已经交了6年,现在能退多少钱? 国寿瑞鑫盛典版2021怎么样?有没有坑? 国寿瑞鑫两全保险(分红型)20年的怎么样 国寿瑞鑫盛典版2021有没有坑?值不值得买? 国寿瑞鑫盛典版2021有没有坑?有必要买? 国寿瑞鑫两全保险分红型, 共交20年,每年交6640元, 保额才4万是不是太低了??已经交3年,退保能退多少 冰箱上的胶怎么除? WD-40除胶剂是家庭里到处都可以用吗? 冰箱上面的透明胶带印迹怎样除去? 怎么去除冰箱上的透明胶痕迹,急急急 胶水可以用冰去掉吗 冰箱外壳很多贴纸胶,有什么方法可以去掉 怎么样看自己淘宝有多少钱 匡威开口笑鞋垫哪里有卖?门店可以买到吗? nike原装鞋垫哪有卖? 鞋垫一般哪有买啊?超市还是鞋子专卖店还是什么地方? 鞋垫一般哪里有卖的? 哪有阿迪达斯的原装鞋垫卖,网店也行 华为p7在屏幕失灵后怎么强制关机 帮我设计下食谱(我对肉、小麦等过敏) 哪种方法做的蚕豆最鲜美,煮一锅都不够家人吃? 鲜蚕豆做吃法,怎样做 喝陈皮茶的好处? 深圳大病保险新政策2019 白色衣服,倒上了84消毒液,变黄了,怎么办 深圳重大疾病医保报销 深圳大病医保报销限额 深圳大病医保20元怎么参加 深圳大病医保报销比例 幼小衔接班的课程有哪些? 幼小衔接的课程有哪些 什么是幼小衔接?幼小衔接有什么课程?