研究?Android Design?這么久, 我一直都在講述 Android Design 的優(yōu)勢與便利, 卻有意無意的忽視著 Android Design 中的各種不足之處. 這次, 藉由知乎上的一個問題, 我打算整理一下目前為止我覺得比較嚴重的, Android Design 的幾個缺陷. 希望大家在看到這篇文章之后, 能夠下意識的避免這些問題, 或者從這些問題入手, 發(fā)現(xiàn)改進 Android Design 的方法.
1. 可見性
圖片來自?@評論尸.
也許你也遇到過這樣的狀況吧: 看到一個新應用, 把玩了許久但是卻完全沒有意識到 Drawer 的存在. 這就是目前 Android Design 很大的一個缺點: 可見性不足. 就拿 Drawer 做例子, 雖然 Google 強調(diào)過開發(fā)者應該通過各種方式來讓用戶發(fā)現(xiàn) Drawer 的存在, 但是這個控件本身的可見性很差 (所以才會需要開發(fā)者花額外的功夫讓用戶意識到它的存在), 這點是不可否認的. 如果和 iOS 的對比, 那就更加明顯了: iOS?中的 Drawer 一般會通過一個專門的按鈕喚出:
這樣就基本不存在可見性的問題了. 畢竟比起 Android Design 標準的 Drawer 按鈕 (應用圖標和 hamburger), 這個按鈕的存在感要高太多. 要避免這個問題, 有個很方便的辦法就是采用非官方 Drawer, 使整個界面都可以被拖動, 能大大增加 Drawer 的可見性. , 在初次進入應用時展開 Drawer 也是很好的提示方案. 有的應用甚至直接將 Drawer 作為真正的主界面 (在主界面按下 back 會開啟 Drawer, 在 Drawer 按 back 才是退出應用,?不過并不推薦這種方式), 很好的解決了這個問題. 另外, 除了 Drawer 之外, 還有一個已經(jīng)快要死掉的控件 Scrollable Tabs 也是可見性非常差勁的類型 (只能看到當前和左右各一個 Tab 的名稱). 看不到所有 Tabs 的壞處很明顯, 我這里有個不那么恰當?shù)睦? 我父親的一個朋友用了兩年的 Kin 居然不知道左右滑動可以調(diào)出更多/其他的功能 —— 好在這個控件已經(jīng)基本沒什么應用在用了.
2. 按鈕樣式
亂七八糟的按鈕樣式容易讓用戶感到迷惑, 有時甚至會讓用戶不能確定”這到底是不是個按鈕?” 而且有的開發(fā)者又會自己”創(chuàng)造”新的按鈕樣式, 更是讓人迷惑. 其實現(xiàn)在還在用的按鈕樣式基本上也就只剩下兩種了 —— borderless (無邊框) 和 plain (平面式). 活用這兩種按鈕樣式, 在正確的地方使用正確的按鈕, 可以讓用戶的困惑減少很多.
3. 使用圖標按鈕
這點要對比 iOS 來看. Android Design 中明確說過盡量使用簡潔清晰的圖標來制作圖標按鈕, 但是圖標這種東西往往具有一定的不確定性, 比如下圖這些圖標:
一個圖標根據(jù)使用情況不同可以代表不同的信息, 很經(jīng)常發(fā)生的情況是同一個圖標在不同的應用里起到了不同的作用.
來看看?iOS. ?iOS?選擇直接大量使用文字按鈕 (或者圖片在上文字在下的按鈕). 相比之下, Android 的純粹圖標按鈕就顯得很不直觀, 更別提某些開發(fā)者自己畫了一套讓使用者完全不明所以的圖標, 那簡直是對用戶體驗的毀滅.
還有更糟糕的. 如果開發(fā)者使用了自制的 Action Bar, 那么唯一的救命稻草 —— 長按圖標浮現(xiàn)提示 (本來這個提示就已經(jīng)夠隱蔽的了, 說實話有多少 Android 用戶知道長按圖標可以出現(xiàn)文字提示的?) —— 也就消失了. 舉個例子, 在 Android 4.1 以上的自帶時鐘應用中, “添加不同時區(qū)時鐘”和”進入鬧鐘界面”這兩個按鈕是沒有任何文字提示的, 尤其是那個添加不同時區(qū)時鐘的按鈕, 第一次使用的用戶基本不可能直接猜出那是什么用的按鈕, 長按又無法獲得提示, 實在是憋屈.
?
上面是很久以前我還在給四次元畫 Demo 圖的時候想到的一種解決方案. 在 Android 上, 開發(fā)者是可以通過比較簡單的編譯就實現(xiàn)在按鈕旁顯示文字的效果的. 比起讓用戶猜測圖標按鈕的含義, 在空間充裕時, 于一些關(guān)鍵按鈕/非通用性按鈕旁顯示文字, 這便能很好的解決這個問題了. 除了強制顯示文字, 還有很重要的一點就是盡量使用標準圖標和標準含義, 不要隨便創(chuàng)造含義不能一目了然的圖標, 或?qū)σ延袌D標添加新的含義. 自制圖標的時候, 注意一些通用的規(guī)范, 比如在圖標的右下角加上”+”表示新建 (“新建”前綴), 等. 當然, 這個問題還有很多更好的解決方案, 歡迎討論.
4. Contextual Action 的問題
Android Design 里對于 Contextual 的定義倒是很明確, “長按時出現(xiàn)的操作”. 但是對 Contextual 操作的觸發(fā)方式卻沒有靠譜的規(guī)范. Google 自家就有好幾種對 Contextual Action 的解決方案:
上圖左至右分別是單項目的 Action Overflow, 上下文 Action Bar 和次級操作按鈕. 按照 Google 的說法, 采用這三種方式調(diào)出動作菜單都是合理的. Item Action Overflow (單項目動作菜單) 和 Secondary Action (次級動作) 可以避免長按造成的可見性不足, Contextual Action Bar 可以在固定的位置提供固定的操作. 它們各有好處, 也各自有適合的地方.?但問題是, 有的時候他們又會同時出現(xiàn) (比如 Play Store 里 All apps 列表), 這便讓人感到無法理喻了. 另外, 我向來認為, 無論什么操作都應該能通過數(shù)次單擊來完成, 而官方規(guī)范里的 Contextual Action Bar 的喚出方式卻只有長按 (在 Gmail 里也可以單擊頭像喚出, 這是個不錯的進步), 可見性非常低. 就這一點而言, 我比較喜歡 Item Action Overflow 和 Secondary Action.
5. Action Overflow
下圖可以說明所有問題:
Play Music 的專輯頁面中, 你可以看到三種不同的?Acrtion?Overflow. 我覺得, 應該沒有任何一個新用戶能在第一次使用 Play Music 的時候就搞清楚屏幕上三個 Action Overflow 的區(qū)別吧. 更何況它們又長得幾乎一模一樣, 實在是令人無語.
由于 Android 將所有的菜單溢出項都放在了 Action Overflow 中, 造成了很多地方都會出現(xiàn) Action Overflow. 這個問題, 我現(xiàn)在也暫時沒能想到什么很好的解決方案 (其實遇到這問題一共也就這么幾個地方, 而且有趣的是, 這還都是 Google 自家應用…), 希望大家能共同討論一下.
說了這么多的問題, 我想表達的中心思想不過是, Android Design 經(jīng)過近兩年的發(fā)展, 確實是在不斷的日趨完善, 但是不可否認的是, 這套規(guī)范遠未至臻完美. 希望開發(fā)者和設計師們在設計自己的應用的時候, 不要盲目的遵循規(guī)范, 或著奉 Google 自己的應用為圭皋, 請在設計應用的時候, 更多的加入自己的思考.
另外, 如果你發(fā)現(xiàn)了 Android Design 的其他問題, 請盡管向 Google 方面反饋. 當然, 也歡迎在評論中探討.
來源:極客公園