交互水深 06 | 多選陷阱、收集器、列表構造、增項列表【單選小坑,多選大坑】(下篇)

前兩篇中,闡述了『選擇』的五個要點,設計『單選』的注意事項,以及『聯動菜單』和『級聯選擇』等基本概念。

本篇將圍繞『多選』展開,同時介紹『收集器』、『列表構造』、『增項列表』等界面上的重要概念。

破解『多選陷阱』

實際工作中,『多選』通常有幾百個候選項,甚至產品需求是對分頁列表中的數據集進行批量操作。面對此類問題,常見設計方案如下:

設計思路:數據集當中,每一條記錄都包含一個複選框;存在一個『全選』按鈕或複選框,點擊則全部勾選,再次點擊則全部不勾選;針對已經選中的項目進行批量操作。

此設計思路的明顯缺陷:

  • 假如選中第1頁第3條和第3頁第5條,此時無法跨頁同時看到哪兩條已經被選中(跨類也一樣)
  • 全選操作的範圍模糊,是僅限本頁,還是包含所有的分頁?
  • 搜索第一個關鍵字,勾選其中某幾項,此時搜索另外關鍵字,前面所選是否依然有效?如果有效,假如不在當前結果之中,如何辨識?

所以,當設計跨頁、跨類多選的時候,請嚴重注意以上問題。

如何破解『多選陷阱』呢?一個非常簡單的『收集器』就可以搞定:

看起來像『購物車』吧?沒錯,它就是一種典型的『收集器』。

特別注意,在設計『收集器』時,請保持下面的原則:

收集器中不應該再有跨頁或者跨類多選,否則將又製造一個新的『多選陷阱』。(通常不會再分頁,或者只分類不多選)

跨級多選是大坑

多級分類,只有在末端節點才有葉子,形成跨類多選;還有另外一種更複雜的情況,即在每一級節點上都可能包含葉子,形成『跨級多選』。

B端產品需求中,通常存在『企業的組織架構』,它代表了一類數據關係:嚴整的樹形多級分類,每一級都可能包含葉子。於是,既要保證等級森嚴,又要進行多選,成了亘古難題。

真的很難么?通常的設計中,採用樹形結構是常見方案,如下圖:

設計思路:

  • 展開和摺疊兩種狀態的區分,切換操作;
  • 級別之間的縮進關係;
  • 枝杈和葉子兩種形式的區分;
  • 枝杈包含葉子數的顯示;
  • 已經選中和未被選中的區分,切換操作;
  • 快速選中某個枝杈下屬的所有葉子和枝杈,以及逆操作;

此設計思路的明顯缺陷,依然是『多選陷阱』:

  • 如果枝杈非常多,勾選分布範圍較大,無法在一個屏幕顯示所有被選中葉子;
  • 假如某個枝杈被摺疊,那麼該枝杈下屬所含被選中的葉子容易被忽略;
  • 如果枝杈為無限級,此時跨級別多選,也無法在一個屏幕顯示所有被選中葉子;

初步結論:樹型結構利於顯示和單選,但不利於多選;用戶辨識複雜度較高,操作複雜度更高,容易落入『多選陷阱』。

臨時的解決方案:增加一個帶路徑的收集器。

列表構造

只會設計APP,已經讓從業者的技能嚴重退化。雖然熟練的設計師都會使用『購物車』解決多選問題,但是Web/桌面軟體的另外一種『多選大殺器』卻越來越變得鮮為人知,那就是『列表構造』:

顯然,列表構造器在處理幾百上千個候選項時:一目了然,節約空間,得心應手。

列表構造器同時存在兩類列表:一類是『源列表』,即候選項目;另外一類是『目標列表』,即已選項目。操作一組控制按鈕,實現『選項』在兩類列表之間切換轉移。

這種大殺器擁有超多的衍生形式,設計貼士如下:

  • 對於每個『源』或『目標』,其中即可以是多選也可以是單選;
  • 如果『源』或『目標』當中項目太多,可以設計某個列表內的搜索(查找);
  • 『源』或『目標』可以存在分頁(不推薦,可能產生多選陷阱),或者根據長度有滾動條;
  • 『源列表』不能出現多級分類(一級分類雖然可以,但也不推薦,跨級更是絕對禁止,後面會介紹
  • 『目標列表』中禁止出現任何形式的分類(僅有一級也不行);

  • 『源列表』當中,應將已選中項目設置為不可選,或者直接剔除已選中項目(移動),防止重複選中;
  • 雙擊某個項目可以直接在『源』與『目標』之間切換,或者改變其他觸發形式;

雖然有諸多禁忌,但仍無法阻擋『非APP交互設計師』對它們的喜愛,例如在PC版微信中,『選擇轉發用戶界面』就使用了構造列表器:

級聯列表構造

多級分類結構中,如果只在末端枝杈包含葉子(非跨級),且分級比較固定,例如3級、4級、最大限度為5級,此時可以採用級聯列表構造器,快速實現多選。級聯的多個『源列表』只有最末級為多選,其他級別為單選,參考形式如下:

不難發現,此形式與上一篇提到的『級聯單選』非常相似,只是變為了多選(當然,單選也可以使用級聯列表構造器實現)。

當然,上圖之中也存在『多選陷阱』的隱患:

  • 選擇中國的『成都』,但並沒有觸發『>』按鈕進行切換,此時直接將國家改成日本,選擇『東京』,然後觸發『>』,此時成都應該轉移到『目標列表』嗎?

這個問題每個設計師有自己的答案,無論答案是什麼,隱患都不太致命;因為『目標列表』顯性存在,多選陷阱的危害被大大削弱;在操作效率面前,可以向合理性適當妥協。

增項列表與多選嵌套

還有什麼武器能應對海量候選項的多選呢?看看這個大家都熟悉,但可能叫不上名字的『增項列表』。它是列表構造器的變體,比列表構造器更節約空間。

只要屏幕空間允許,多選嵌套可以玩出很多花樣,無非兩種方式:把多選拆分為多步驟『單選』,或者把多選拆分為多步驟『多選』。

兩個重要的排序

本篇介紹的幾種都選形式,都有近似的特徵,多選並非一次完成,而是可以『分塊』轉移。在實際項目中,撰寫PRD和交互文檔時,要特別注意兩個排序的規則:

  • 第一,『中間塊』的排序規則,按照選中順序,還是在候選池中的固有順序,生成時間順序,文件大小順序,字幕排序,規則是什麼?正序還是倒序?
  • 第二,『中間塊』加入『目標隊列』的規則,隊首還是隊尾?

小結

本篇主要介紹了跨頁、跨類、跨級多選中存在的操作陷阱,並提供『收集器』『列表構造器』『增項列表』等應對複雜多選問題的解決方案。

解決『跨級多選』問題目前並沒有優雅的方案。

所謂『多選大殺器』它們共同的特點是,能夠以較小的屏幕空間和操作代價,提供便捷的『辨識未選』、『操作選擇』、『辨識已選』、『取消選擇』、『明示不可選』。

多選可以級聯並嵌套使用,只要避開『多選陷阱』就能變化出多種形式。它們主要由『源列表』與『目標列表』兩部分組成,其中移動的中間塊的自身順序和加入『目標列表』的順序值得注意。

單選小坑,多選大坑

開篇提到:人類因有選擇而痛苦,沒有選擇,就沒有痛苦;仰天長嘯,交互設計中有關『選擇』的三篇文章終於完成。

前兩篇還是很輕鬆的,寫到多選,消耗了大概三天時間,因為問題極其複雜,害怕誤導諸位讀者,總之是寫了又刪,刪了再寫,往複成篇。

遇到界面上的選擇問題,相信都能夠從這三篇文章中汲取靈感,找到答案。


寫文章不容易,請呵護原創 未經授權,請勿轉載

精力有限,知乎專欄更新較慢,追番請移步微信公眾號 hozin-com

Hozin公眾號入口

擴展閱讀

交互水深 01 | 從區分 [ 頁面 ] 和 [ 界面 ] 開始吧

交互水深 02 | 設計師對 [ 功能 ] 應該有怎樣的認知?

交互水深 03 | 理解 [ 用戶任務 ] 的 [ 顆粒度 ]

交互水深 04 | 選擇設計中的五個要點【單選小坑,多選大坑】(上篇)

交互水深 05 | 下拉框的濫用、聯動菜單、單選特例、級聯單選【單選小坑,多選大坑】(中篇)

交互水深 06 | 多選陷阱、收集器、列表構造、增項列表【單選小坑,多選大坑】(下篇)


推薦閱讀:

市面上的「真」·「偽」設計系統
獃獃淺談:設計流程與產品分析
UI設計必背英語|001初識
UI設計必背英語|003頁面
交互水深 04 | 選擇設計中的五個要點【單選小坑,多選大坑】(上篇)

TAG:交互設計 | 產品經理 | 用戶界面設計 |