1. 程式人生 > >MUI(1)

MUI(1)

design 額外 文檔 幫助 view實現 寬度 超出 啟動 rip

  今天小編用HBuilder+MUI開發移動APP,不用Android原生也不用IOS原生,僅僅用HTML5+MUI。小編也是初學者所以如有不準確的地方望大家指出幫助小編改正,同時也可以促進大家的深入學習。
  HBuilder的下載官網地址:http://www.dcloud.io/;MUI官網下載地址:https://www.muicss.com/。
  HBuilder是免費的,但是僅僅需要登錄,安心註冊,方向登錄使用,完全免費的。
  第一次啟動HBuilder需要登錄和簡單的設置不過很easy啦。
啟動HBuilder後,可以再菜單選項卡看到文件、編輯...等等。

技術分享

鼠標左鍵點擊文件選項卡,可以看到

技術分享


按照截圖操作後,
技術分享
按照截圖進行操作後會看到,
技術分享
在項目管理器中看到剛才新創建的項目,
技術分享
這就是基本的目錄結構,當然了也可以自定義哈!鼠標左鍵雙擊index.html文件,會看到
技術分享

按照截圖進行設置即可,這樣比較方便邊看邊改而已。
因為我們新建項目采用的是mui項目模板所以index.html頁面會自動引入mui.min.js和mui.min.css,

<script type="text/javascript" charset="utf-8">
mui.init();
</script>

mui.init();這一行的意思是:插件初始化。官方文檔是這麽說明:mui框架將很多功能配置都集中在mui.init方法中,要使用某項功能,只需要在mui.init方法中完成對應參數配置即可,目前支持在mui.init方法中配置的功能包括:創建子頁面、關閉頁面、手勢事件配置、預加載、下拉刷新、上拉加載、設置系統狀態欄背景顏色。而且官方文檔特別強調了:

mui需要在頁面加載時初始化很多基礎控件,如監聽返回鍵,因此務必在每個頁面中調用。
下面展示代碼,
技術分享

技術分享

這兩張截圖就是全部代碼了,以及在電腦上面顯示的效果,之後會奉上手機端顯示效果圖(僅僅只有安卓手機端的顯示效果圖,因為小編用的是安卓手機)

技術分享
<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <title></title>
        <script src="js/mui.min.js"></script>
        <link href="css/mui.min.css" rel="stylesheet" />
    </head>

    <body>
        <!-- 頭部header開始 -->
        <header class="mui-bar mui-bar-nav">
            <a class="mui-icon mui-icon-bars mui-pull-left"></a>
            <a id="info" class="mui-icon mui-icon-info-filled mui-pull-right" style="color: #999;"></a>
            <h1 class="mui-title">index</h1>
        </header>
        <!-- 頭部header結束 -->
        <script type="text/javascript" charset="utf-8">
            mui.init({
                subpages: [{
                    url: "html/index_list.html", //子頁面HTML地址,支持本地地址和網絡地址
                    id: "index_list", //子頁面標誌
                    styles: {
                        top: ‘45px‘, //子頁面頂部位置
                        bottom: ‘0px‘ //子頁面底部位置
                    }
                }]
            });
        </script>
    </body>

</html>
技術分享

上面是index.html頁面的全部代碼,mui中頭部是header,默認在頂端顯示,nav默認在底端顯示。index.html頁面中只寫了一個header頭部導航,和一串JavaScript代碼。
官方文檔中這樣說明:在mobile app開發過程中,經常遇到卡頭卡尾的頁面,此時若使用局部滾動,在android手機上會出現滾動不流暢的問題; mui的解決思路是:將需要滾動的區域通過單獨的webview實現,完全使用原生滾動。具體做法則是:將目標頁面分解為主頁面和內容頁面,主頁面顯示卡頭卡尾區域,比如頂部導航、底部選項卡等;內容頁面顯示具體需要滾動的內容,然後在主頁面中調用mui.init方法初始化內容頁面。

技術分享
mui.init({
    subpages:[{
      url:your-subpage-url,//子頁面HTML地址,支持本地地址和網絡地址
      id:your-subpage-id,//子頁面標誌
      styles:{
        top:subpage-top-position,//子頁面頂部位置
        bottom:subpage-bottom-position,//子頁面底部位置
        width:subpage-width,//子頁面寬度,默認為100%
        height:subpage-height,//子頁面高度,默認為100%
        ......
      },
      extras:{}//額外擴展參數
    }]
  });
技術分享

參數說明:styles表示窗口屬性,參考5+規範中的WebviewStyle;特別註意,height和width兩個屬性,即使不設置,也默認按100%計算;因此若設置了top值為非"0px"的情況,建議同時設置bottom值,否則5+ runtime根據高度100%計算,可能會造成頁面真實底部位置超出屏幕範圍的情況;left、right同理。

技術分享
<!doctype html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <link href="../css/mui.min.css" rel="stylesheet" />
    </head>

    <body>
        <div class="mui-content">
            <button type="button" class="mui-btn mui-btn-primary mui-btn-block">index_list</button>
        </div>
        <script src="../js/mui.min.js"></script>
        <script type="text/javascript">
            mui.init();//初始化
        </script>
    </body>

</html>
技術分享

上面是index_list.html頁面的全部代碼。index.html和index_list.html兩個頁面結合在一起形成了這個效果:
技術分享

index.html的作用就是顯示固定導航,inde_list.html顯示具體列表內容,列表項的滾動是在index_list.html所在webview中使用原生滾動,既保證了滾動條不會穿透頂部導航,符合app的體驗,也保證了列表流暢滾動,解決了區域滾動卡頓的問題。 index_list.html就是index.html的子頁面,創建代碼比較簡單,如下:

技術分享
mui.init({
                subpages: [{
                    url: "html/index_list.html", //子頁面HTML地址,支持本地地址和網絡地址
                    id: "index_list", //子頁面標誌
                    styles: {
                        top: ‘45px‘, //子頁面頂部位置,mui標題欄默認高度為45px
                        bottom: ‘0px‘ //子頁面底部位置,默認為0px,可不定義
                    }
                }]
            });
技術分享

說明:html是在本項目下新建的一個子文件夾,index_list.html頁面在html文件夾下面。
安卓手機端測試效果圖:
技術分享
真機測試參數:Android 4.2.2 OS,關於如何真機測試,小編拿安卓手機舉例,一部安卓手機4.2及以上版本系統,一根數據線,然後需
要在電腦上安裝一個手機助手。第一步通過數據線將手機與電腦相連;第二步查看HBuilder菜單欄下方的工具欄中
技術分享

點擊截圖箭頭所指的那個按鈕旁邊的方向向下的箭頭,如果看到
技術分享
如果看到上面這張截圖所示的效果,那麽點擊這個按鈕即可在手機端看到,期間手機和電腦之間不能斷開連接;如果沒有掃描出手機,那麽啟動手機助手,然後關閉HBuilder刷新桌面,之後啟動HBuilder然後重復以上步驟檢查手機是否被識別出來,如果還未識別出手機那麽請百度吧,具體情況具體分析。

這只是一個簡單的demo而已,建議大家自己試試看,還有就是要養成看官方文檔的習慣,遇到問題先去查詢官方文檔。
官方文檔地址:http://dev.dcloud.net.cn/mui/ui/,http://www.html5plus.org/doc/zh_cn/webview.html
或許有人會說小編我的這篇博客很爛,但是小編覺得真的很基礎,切記不要養成高端看不透徹,低端基礎看不上的習慣,這個習慣很不好。
轉載請註明出處,謝謝。

MUI(1)