国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

MUI進(jìn)行APP混合開發(fā)實(shí)現(xiàn)下拉刷新和上拉加載

2019-10-22 18:23:18
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

首先,我們的環(huán)境是使用HBuilder通過(guò)MUI開發(fā)APP,這種混合開發(fā)適合安卓和蘋果兩個(gè)平臺(tái),本次我們給大家寫的代碼是把上拉加載和下拉刷新單獨(dú)分離開,一起來(lái)學(xué)習(xí)下。

為實(shí)現(xiàn)下拉刷新功能,大多H5框架都是通過(guò)DIV模擬下拉回彈動(dòng)畫,在低端android手機(jī)上,DIV動(dòng)畫經(jīng)常出現(xiàn)卡頓現(xiàn)象(特別是圖文列表的情況); 通過(guò)雙webview解決這個(gè)DIV的拖動(dòng)流暢度問(wèn)題;拖動(dòng)時(shí),拖動(dòng)的不是div,而是一個(gè)完整的webview(子webview),回彈動(dòng)畫使用原生動(dòng)畫;在iOS平臺(tái),H5的動(dòng)畫已經(jīng)比較流暢,故依然使用H5方案。兩個(gè)平臺(tái)實(shí)現(xiàn)雖有差異,但經(jīng)過(guò)封裝,可使用一套代碼實(shí)現(xiàn)下拉刷新。

第一步: 創(chuàng)建子頁(yè)面,因?yàn)橥蟿?dòng)的其實(shí)是個(gè)子頁(yè)面的整體

mui.init({ 	subpages:[{ 	url:pullrefresh-subpage-url,//下拉刷新內(nèi)容頁(yè)面地址 	id:pullrefresh-subpage-id,//內(nèi)容頁(yè)面標(biāo)志	 styles:{ top:subpage-top-position,//內(nèi)容頁(yè)面頂部位置,需根據(jù)實(shí)際頁(yè)面布局計(jì)算,若使用標(biāo)準(zhǔn)mui導(dǎo)航,頂部默認(rèn)為48px; .....//其它參數(shù)定義 	 } 	}] });

第二步:內(nèi)容頁(yè)面需按照如下DOM結(jié)構(gòu)構(gòu)建

<!--下拉刷新容器--><div id="pullrefresh" class="mui-content mui-scroll-wrapper">  <div class="mui-scroll">    <!--數(shù)據(jù)列表-->    <ul class="mui-table-view mui-table-view-chevron">      <li class="mui-table-view-cell">1</li>    </ul>  </div></div> 	 

第三步:通過(guò)mui.init方法中pullRefresh參數(shù)配置下拉刷新各項(xiàng)參數(shù)

mui.init({ 	pullRefresh : { 		container:"#pullrefresh",//下拉刷新容器標(biāo)識(shí),querySelector能定位的css選擇器均可,比如:id、.class等 			down : {			contentdown : "下拉可以刷新",//可選,在下拉可刷新狀態(tài)時(shí),下拉刷新控件上顯示的標(biāo)題內(nèi)容 			contentover : "釋放立即刷新",//可選,在釋放可刷新狀態(tài)時(shí),下拉刷新控件上顯示的標(biāo)題內(nèi)容 			contentrefresh : "正在刷新...",//可選,正在刷新狀態(tài)時(shí),下拉刷新控件上顯示的標(biāo)題內(nèi)容 			callback : fn //必選,刷新函數(shù),根據(jù)具體業(yè)務(wù)來(lái)編寫,比如通過(guò)ajax從服務(wù)器獲取新數(shù)據(jù);		 } } });

第四步:設(shè)置執(zhí)行函數(shù)

function fn() {	 //業(yè)務(wù)邏輯代碼,比如通過(guò)ajax從服務(wù)器獲取新數(shù)據(jù); ...... //注意,加載完新數(shù)據(jù)后,必須執(zhí)行如下代碼,注意:若為ajax請(qǐng)求,則需將如下代碼放置在處理完ajax響應(yīng)數(shù)據(jù)之后 		 	 mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //這行代碼會(huì)隱藏掉 正在加載... 容器	 }

以上就是關(guān)于下拉刷新的MUI寫法以及相關(guān)的function 函數(shù),下面來(lái)看看下拉加載:

第一步,第二步 和下拉刷新的一樣

第三步:通過(guò)mui.init方法中pullRefresh參數(shù)配置下拉刷新各項(xiàng)參數(shù)

mui.init({   pullRefresh : {     container:"#pullrefresh",//待刷新區(qū)域標(biāo)識(shí),querySelector能定位的css選擇器均可,比如:id、.class等     up : {       contentrefresh : "正在加載...",//可選,正在加載狀態(tài)時(shí),上拉加載控件上顯示的標(biāo)題內(nèi)容       contentnomore:'沒有更多數(shù)據(jù)了',//可選,請(qǐng)求完畢若沒有更多數(shù)據(jù)時(shí)顯示的提醒內(nèi)容;       callback : fn //必選,刷新函數(shù),根據(jù)具體業(yè)務(wù)來(lái)編寫,比如通過(guò)ajax從服務(wù)器獲取新數(shù)據(jù);     }   } });

第四步:設(shè)置執(zhí)行函數(shù)

function fn() {   //業(yè)務(wù)邏輯代碼,比如通過(guò)ajax從服務(wù)器獲取新數(shù)據(jù); ...... //注意,加載完新數(shù)據(jù)后,必須執(zhí)行如下代碼,true表示沒有更多數(shù)據(jù)了,  兩個(gè)注意事項(xiàng): //1、若為ajax請(qǐng)求,則需將如下代碼放置在處理完ajax響應(yīng)數(shù)據(jù)之后 //  2、注意this的作用域,若存在匿名函數(shù),需將this復(fù)制后使用     var _this = this;     _this.endPullupToRefresh(true|false); }

上面就是上拉加載這個(gè)代碼的詳細(xì)寫法以及函數(shù)。

本次我們分開給大家把下拉刷新和上拉加載都給大家分享了,如果有任何不明白了地方,可以在下面的留言地方留言討論。

 

注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 磴口县| 扎囊县| 平阴县| 高陵县| 丰城市| 通许县| 榆林市| 林周县| 南丰县| 浮梁县| 噶尔县| 大英县| 逊克县| 竹溪县| 东丰县| 祁东县| 申扎县| 岗巴县| 合山市| 九寨沟县| 华安县| 红原县| 古蔺县| 周宁县| 平利县| 荔浦县| 扬州市| 伊宁县| 驻马店市| 阆中市| 肇东市| 扬中市| 龙胜| 金湖县| 秦皇岛市| 金昌市| 阿瓦提县| 茂名市| 洛宁县| 潜山县| 青海省|