您好,登錄后才能下訂單哦!
小編給大家分享一下MUI進行APP混合開發如何實現下拉刷新和上拉加載,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
首先,我們的環境是使用HBuilder通過MUI開發APP,這種混合開發適合安卓和蘋果兩個平臺
為實現下拉刷新功能,大多H5框架都是通過DIV模擬下拉回彈動畫,在低端android手機上,DIV動畫經常出現卡頓現象(特別是圖文列表的情況); 通過雙webview解決這個DIV的拖動流暢度問題;拖動時,拖動的不是div,而是一個完整的webview(子webview),回彈動畫使用原生動畫;在iOS平臺,H5的動畫已經比較流暢,故依然使用H5方案。兩個平臺實現雖有差異,但經過封裝,可使用一套代碼實現下拉刷新。
第一步: 創建子頁面,因為拖動的其實是個子頁面的整體
mui.init({ subpages:[{ url:pullrefresh-subpage-url,//下拉刷新內容頁面地址 id:pullrefresh-subpage-id,//內容頁面標志 styles:{ top:subpage-top-position,//內容頁面頂部位置,需根據實際頁面布局計算,若使用標準mui導航,頂部默認為48px; .....//其它參數定義 } }] });
第二步:內容頁面需按照如下DOM結構構建
<!--下拉刷新容器--> <div id="pullrefresh" class="mui-content mui-scroll-wrapper"> <div class="mui-scroll"> <!--數據列表--> <ul class="mui-table-view mui-table-view-chevron"> <li class="mui-table-view-cell">1</li> </ul> </div> </div>
第三步:通過mui.init方法中pullRefresh參數配置下拉刷新各項參數
mui.init({ pullRefresh : { container:"#pullrefresh",//下拉刷新容器標識,querySelector能定位的css選擇器均可,比如:id、.class等 down : { contentdown : "下拉可以刷新",//可選,在下拉可刷新狀態時,下拉刷新控件上顯示的標題內容 contentover : "釋放立即刷新",//可選,在釋放可刷新狀態時,下拉刷新控件上顯示的標題內容 contentrefresh : "正在刷新...",//可選,正在刷新狀態時,下拉刷新控件上顯示的標題內容 callback : fn //必選,刷新函數,根據具體業務來編寫,比如通過ajax從服務器獲取新數據; } } });
第四步:設置執行函數
function fn() { //業務邏輯代碼,比如通過ajax從服務器獲取新數據; ...... //注意,加載完新數據后,必須執行如下代碼,注意:若為ajax請求,則需將如下代碼放置在處理完ajax響應數據之后 mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //這行代碼會隱藏掉 正在加載... 容器 }
以上就是關于下拉刷新的MUI寫法以及相關的function 函數,下面來看看下拉加載:
第一步,第二步 和下拉刷新的一樣
第三步:通過mui.init方法中pullRefresh參數配置下拉刷新各項參數
mui.init({ pullRefresh : { container:"#pullrefresh",//待刷新區域標識,querySelector能定位的css選擇器均可,比如:id、.class等 up : { contentrefresh : "正在加載...",//可選,正在加載狀態時,上拉加載控件上顯示的標題內容 contentnomore:'沒有更多數據了',//可選,請求完畢若沒有更多數據時顯示的提醒內容; callback : fn //必選,刷新函數,根據具體業務來編寫,比如通過ajax從服務器獲取新數據; } } });
第四步:設置執行函數
function fn() { //業務邏輯代碼,比如通過ajax從服務器獲取新數據; ...... //注意,加載完新數據后,必須執行如下代碼,true表示沒有更多數據了, 兩個注意事項: //1、若為ajax請求,則需將如下代碼放置在處理完ajax響應數據之后 // 2、注意this的作用域,若存在匿名函數,需將this復制后使用 var _this = this; _this.endPullupToRefresh(true|false); }
看完了這篇文章,相信你對“MUI進行APP混合開發如何實現下拉刷新和上拉加載”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。