Google Material Design 學習04 - 開發 App 實戰
操作範例影片 完整程式碼 (Chrome瀏覽器中使用記得要打開跨域)
App畫面
主導覽清單 |
主導覽圖片 |
指定民宿資訊 |
學習了一些Polymer為Material Design所開發的元件標籤後,想說應該可以把先前做的民宿App畫面升級。原來的民宿App強調的是很快可以實現所要的功能,不過畫面的風格實在是中規中矩,接下來就改用Material Design的元件來提升App質感吧~
如果還沒看過民宿App請點選此連結
和做菜一樣,先把我們的素材 - Polymer元件準備好,元件清單如下
標簽名稱 |
功能 |
備註 |
<core-toolbar> |
工具列 |
放在畫面最上方,導覽本頁及切換至其他頁面 |
<paper-icon-button> |
功能按鈕 |
切換頁面,並提供視覺反饋 |
<page-item> |
清單項目 |
顯示指定民宿資訊 |
<core-header-panel> |
主題面板 |
提供water-fall動態效果的主題面板,用來顯示民訴圖片 |
主導覽清單、主導覽圖片資料來源是同一份,只不過用不同的方式呈現,但都是使用<ul><li> 搭配 <template> 製作而成,只是利用CSS完成不同的效果。
主導覽清單
主導覽清單HTML
(使用JQueryMobile ListView filter功能) |
<ul id="list" data-role="listview" data-inset="true" is="listview" data-filter="true"> <li is="listview-li" style="padding:0" data-id="{{siID}}"> <paper-item horizontal center layout class="item"> <div> <img src="{{iconURI}}"> </div><b>{{storeName}}</b> </paper-item> </li> </ul> |
要將資料放入template產生畫面的JS寫法很簡單,一行就搞定了
$('#list').gk('model', models); // 用法參考
由於使用了JQueryMobile ListView,所以Filter功能設定一個屬性 data-filter='true' 就完成了,接下來就是處理點選 清單項目時,要切換到民宿詳細資訊的頁面
//註冊點選清單項目 $('#list').gk('onRow', onRow); //取得點選的資料ID(指定民宿詳細資料)、民宿圖片 function onRow(li) { qq = li; var id = li.data('id'); var imgSrc = li.find('img').attr('src'); setHeaderPanel(id, imgSrc); changePage("#detail", "slide"); } //切換到民宿詳細資訊頁面 (為了提供觸控視覺反饋,故意延遲0.5秒) function changePage(pageId, tran, isR) { function change() { $.mobile.changePage(pageId, { transition: tran, reverse: isR }); } setTimeout(change, 500); } |
主導覽圖片
主導覽圖片 HTML
|
<ul id="gallery" data-role="listview" data-inset="true" is="listview"> <li style="display:inline-block;padding:2px" is="listview-li" data-id="{{siID}}"> <paper-item horizontal center layout style="height:100%;padding:0px"> <div> <img src="{{iconURI}}" class="ui-li-icon"> </div> </paper-item> <div class="store">{{storeName}}</div> </li> </ul> |
主導覽圖片和主導覽清單程式寫法一樣,就不囉唆了...
最後介紹指定民宿資訊的做法
這裡用到了 <core-header-panel> ,可以在畫面捲動時,動態收摺民宿照片,效果還蠻酷的。另外 class="content" 這區塊是放民宿資訊,所以挖了兩個洞 id='address' , id='remarks' 分別放民宿的地址和備註。
雖然不是專業設計師,不過靠著Material Design的基本導引,以及所提供的標籤元件,真的感覺改良後,整個App質感有提升。不過民宿資訊那頁還是有很大優化空間,就以後再說吧~