Stepper(步進器)由一個增加按鈕、一個減少按鈕和一個由按鈕控制的數值組成。每次點擊增加按鈕(或減少按鈕)數字增長(或減少)的數量是恒定的。
一、如何使用
1.適用于數值精確的小范圍調整:在移動端,iOS普遍用Picker(拾取器/波輪選擇器)解決多選一的問題,Android則是用Dropdown menu(下拉菜單)或者Dialog(對話框)。但對于數值型數據(商品數量、投資比率、人數等等)的精確小范圍調整,Stepper優于其他控件,更直觀用起來更快更簡單。
2.注意默認值和上限與下限:如果Stepper默認值離用戶目標的數值越遠,需要的點擊次數越多。選擇一個合理的默認值能幫助用戶減少點擊次數提升操作效率。此外,要注意考慮數值的上限與下限,在到達限制后禁用相關按鈕。
3.數字快捷修改:如果對數值有大幅度調整的需求,可將數字改造成輸入框,通過鍵盤快捷大幅度精確修改。
二、相關資料
1.Sliding Stepper(滑動式步進器)
在PC端Stepper的點擊區域非常小不易操作,而且Stepper每次點擊后數字變化太小,如果要調整數值遠不如直接改輸入框來得方便。國外有案例將Stepper和Slider(滑塊/滾動條)相結合為Sliding Stepper,加和減被合并為一個按鈕,點擊按鈕后出現垂直滾動條,通過操作垂直滾動條,調整數值會更快幅度更大,且可以觀察數值對應的事物產生連續變化,非常適合圖形設計軟件。
2.Switch/開關/滑動開關/切換開關
Switch(開關/滑動開關/切換開關)有兩個互斥的選項(例如開/關、是/否、啟動/禁用),它是用來打開或關閉選項的控件。選擇其中一個選項會導致立即執行操作。
3.爭議
Google在Material Design里把Stepper 定義為步驟指示器。考慮到除Material Design以外的設計規范都將Stepper 定義為步進器,因此我覺得Material Design的稱呼方法不是主流,建議大家用Step Indicator來稱呼步驟指示器。
三、如何使用
1.準確的Label(標簽):由于Switch控件本身就能表現當前的開/關狀態,因此相關文案只需表示所控制內容,千萬不要在Lable中加入一些邏輯詞語。典型的反面教材就是Android 7.0的通知設置,雙重否定表示肯定,大多數人都把左圖的狀態當做當前App的通知是關閉的,實際上右圖才是關閉通知后的狀態。
2.清晰的開關狀態:Switch可以根據App視覺風格進行樣式修改,但一定要清晰的表示開關狀態,下圖的釘釘PC版,由于加了顯眼的顏色,很難第一眼分辨出這表示關的狀態。
3.立即執行操作:Switch與RadioButton(單選按鈕)、CheckBox(復選框)最大的區別是:Switch操作后,程序立即執行相關操作。而RadioButton和CheckBox一般用在表單里,僅反映當前的選擇狀態,如果要執行操作并生效,需要點擊額外的提交按鈕。
4.危險操作二次確認:正是由于按下Switch后立即執行操作,如果操作比較危險,請在點擊開關后加入二次確認流程,避免造成嚴重損失。
5.注意加載狀態:如果Switch所執行的操作需要與服務器交互,就必須考慮加載狀態了,例如剛進入頁面時,獲取Switch的狀態需要加載。如果改變Switch的狀態,需要與服務器交互,必須等待服務器返回成功指令后才能改變Switch的狀態,傳統的做法是為初次加載和操作后等待準備特定的樣式。
另外一種目前比較流行的策略是使用Optimistic UI。用戶操作Switch之后,Switch視覺上立即響應改變,然后再向服務器交互。微信朋友圈的點贊就是用的這個策略。Optimistic UI帶給用戶更流暢的體驗,當然,采取這一策略最好保證服務器在97%到99%以上的狀況下返回成功指令。
6.QQ音樂Android版的流暢度設置:QQ音樂Android版的設置項中有流暢度設置,關閉相關效果可提升流暢度和減少耗電。通常來說Switch打開有啟用的含義,帶有一點正面的褒義效果。QQ音樂卻反過來了,Switch關閉有褒義的鼓勵含義——關閉更流暢。