接下來就讓我們來開始學(xué)習(xí)列表的上拉加載和下拉刷新的實(shí)現(xiàn)吧(通過聚合數(shù)據(jù)平臺獲取微信新聞)。
1.介紹幾個(gè)組件
1.1 scroll-view 組件
1.2 image組件
注意:使用豎向滾動時(shí),需要給一個(gè)固定高度,通過 WXSS 設(shè)置 height。
注意:mode有12種模式,其中3種是縮放模式,9種是裁剪模式。
1.3 Icon組件
iconType: [ ‘success', ‘info', ‘warn', ‘waiting', ‘safe_success', ‘safe_warn', ‘success_circle', ‘success_no_circle', ‘waiting_circle', ‘circle', ‘download', ‘info_circle', ‘cancel', ‘search', ‘clear' ]
2.列表的上拉加載和下拉刷新的實(shí)現(xiàn)
2.1先來張效果圖
2.2邏輯很簡單,直接上代碼
2.2.1 detail.wxml 布局文件
<loading hidden="{{hidden}}" bindchange="loadingChange"> 加載中... </loading> <scroll-view scroll-y="true" style="height: 100%;" bindscrolltolower="loadMore" bindscrolltoupper="refesh"> <view wx:if="{{hasRefesh}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;"> <icon type="waiting" size="45"/><text>刷新中...</text></view> <view wx:else style="display:none" ><text></text></view> <view class="lll" wx:for="{{list}}" wx:for-item="item" bindtap="bindViewTap" data-title="{{item.title}}" > <image style=" width: 50px;height: 50px;margin: 20rpx;" src="{{item.firstImg}}" ></image> <view class="eee" > <view style="margin:5px;font-size:8px"> 標(biāo)題:{{item.title}}</view> <view style="margin:5px;color:red;font-size:6px"> 來源:{{item.source}}</view> </view></view><view class="tips1"> <view wx:if="{{hasMore}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;"> <icon type="waiting" size="45"/><text>玩命的加載中...</text></view> <view wx:else><text>沒有更多內(nèi)容了</text></view> </view> </scroll-view>var network_util = require('../../utils/network_util.js');var json_util = require('../../utils/json_util.js');Page({ data:{ // text:"這是一個(gè)頁面" list:[], dd:'', hidden:false, page: 1, size: 20, hasMore:true, hasRefesh:false }, onLoad:function(options){ var that = this; network_util._get(url, function(res){ that.setData({ list:res.data.result.list, hidden: true, }); },function(res){ console.log(res); }); }, onReady:function(){ // 頁面渲染完成 }, onShow:function(){ // 頁面顯示 }, onHide:function(){ // 頁面隱藏 }, onUnload:function(){ // 頁面關(guān)閉 }, //點(diǎn)擊事件處理 bindViewTap: function(e) { console.log(e.currentTarget.dataset.title); }, //加載更多 loadMore: function(e) { var that = this; that.setData({ hasRefesh:true,}); if (!this.data.hasMore) return var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno='+(++that.data.page)+'&ps=10'; network_util._get(url, function(res){ that.setData({ list: that.data.list.concat(res.data.result.list), hidden: true, hasRefesh:false, }); },function(res){ console.log(res); })},//刷新處理refesh: function(e) { var that = this; that.setData({ hasRefesh:true, }); network_util._get(url, function(res){ that.setData({ list:res.data.result.list, hidden: true, page:1, hasRefesh:false, }); },function(res){ console.log(res); })},})