當前位置:首頁 > 運營推廣

這個控件叫:Skeleton Screen/加載占位圖

時間:2019-10-17 04:10:00來源:運營推廣作者:seo實驗室小編閱讀:64次「手機版」
 

控件是什么

鑒于國內交互設計名詞混亂不統一,很多設計師不知道如何用專業術語稱呼一個控件,因此我開了《這個控件叫什么》專題,梳理控件的名稱和使用事項,希望能為推動交互設計發展,做出一點微小的貢獻。

Skeleton Screen(加載占位圖)是近年流行的加載控件,通常表現形式是在界面上待加載區域填充灰色的占位圖,與線框圖的效果非常相似。Skeleton Screen本質上是界面加載過程中的過渡效果。

facebook的Skeleton Screen

Skeleton Screen的由來

Launch Screen(啟動屏幕

當你啟動一個APP時,需要從手機存儲器和網絡加載所需的控件和多數據,由于手機性能和網絡狀況的差異,加載需要等待無法避免。

為了解決等待加載過程中出現白屏或者界面閃爍造成的割裂感,iOS規范中規定把界面控件框架的輪廓做成靜態圖片用于Launch Screen(在Google的Material design規范里被稱作placeholder UI),把Launch Screen放在用戶點擊啟動App之后和App真正正常啟動完成之間做過渡,從而消滅白屏和界面閃爍,給用戶一種App啟動很快的錯覺。(然而國內的App不遵循iOS規范,在Launch Screen里放廣告,這又是另外一個商業話題了)

Launch Screen

非控件輪廓區域的內容變動很大,以上圖瀏覽器為例,Launch Screen僅僅顯示工具欄和地址欄,網頁內容區域留下了大量空白,顯然這不是最好的界面加載過渡方案

progress Indicator(進度指示器)

如果Launch Screen持續時間有點長,剛好用戶又盯著Launch Screen大量空白的內容區域,可能會認為App出BUG了——雖然App后臺正在辛勞的加載最新的數據。因此我們需要使用Progress Indicator來告知用戶目前正在加載。

Progress Indicator分為Activity Indicator(活動指示器)和Progress Bar(進度條)兩種,前者就是我們非常熟悉的“菊花轉”。

Activity Indicator和Progress Bar

有了富含動效的Progress Indicator,用戶就知道我們的App并沒有出BUG,而是在辛勤的加載數據,再過不久就能正常的顯示內容了。

Progress Indicator設計出發點是好的,但是帶給用戶的體驗未必優秀。Progress Indicator的出現就意味著需要等待,當用戶注意力集中在Progress Indicator時,就好像學生盯著下課前五分鐘的鐘表,滴答滴答,時間似乎變得更慢了。我們當然不愿意讓用戶望著Progress Indicator產生焦躁的情緒。

Skeleton Screen應運而生

如果我們能在加載前把內容的大概輪廓預先展現出來,然后再逐步的加載真正的內容,這樣既用戶一種內容正在逐漸加載即將呈現的期待,降低了焦躁情緒,又使得界面加載的過程變得更順暢,感官上會覺得比其他加載方式更快。這就是Skeleton Screen!

Skeleton Screen與Activity Indicator對比

圖片來源:https://disciullodesign.wordpress.com/2015/03/13/animation-and-the-user-experience/

Skeleton Screen這個概念最早出自Google產品總監,《Web表單設計》作者,Luke Wroblewski于2013年9月17日發表的博文《Mobile Design Details: Avoid The Spinner》里。(博文地址:http://www.lukew.com/ff/entry.asp?1797?)

目前國內有簡書、領英、新浪微博頭條文章頁采用這個加載方案。國外有Facebook iOS版、medium、WordPress App、slack等產品采用。相信以后會有更多的App和網頁會使用Skeleton Screen。

如何使用

適用于布局排版固定的內容區域

Skeleton Screen所展現的是內容的大概輪廓,如果內容布局和排版不是固定的,那么輪廓和內容布局的巨大差異,不僅不能給用戶順暢和期待感,反倒會造成落差。因此Skeleton Screen適用于布局排版固定的內容區域,例如列表、文章、個人信息。注意:如果內容區域有空頁面的情況,也不建議使用Skeleton Screen。

建議配合其他加載技術一起使用

用戶的網絡環境是復雜的,如果加載持續時間很久,單憑Skeleton Screen起不到流暢過渡的效果,建議配合懶加載(先文字后圖片)、逐條加載、預加載等技術,以達到更出色的體驗。

相關閱讀

這個控件叫:Text fields/輸入框/文本框

相關閱讀

BackgroundWorker控件,解決耗時操作與UI的分離

在 WinForms 或WPF中,有時要執行耗時的操作,在該操作未完成之前操作用戶界面,會導致用戶界面停止響應。解決的方法就是新開一個線程,

flutter控件Flexible和 Expanded的區別

Flexible和 Expanded的區別是: Flexible是一個控制Row、Column、Flex等子組件如何布局的組件。 Flexible組件可以使Row、Column、F

WebBrowser控件的常用方法、屬性和事件

1. 屬性屬性說明

Python 的一些練習(1)加載shapefile

pandas簡介? Pandas是Python的一個結構化數據分析的利器。其中,DataFrame是比較常用的處理數據的對象,類似于一個數據庫里的tabl

自定義控件中 wrap_content 屬性無效的分析解決

問題 在自定義一個類似鎖屏頁面時間日期樣式的控件,繼承 View 的時候,發現在 xml 中使用 wrap_content 屬性相當于使用了 match_par

分享到:

欄目導航

推薦閱讀

熱門閱讀

17321期胆码王孑计划