使用半透明系統UI擴充套件Android檢視

黃瓜發表於2014-06-20

一直以來,Android最大的特點之一就是可以定製UI元素,保持個人應用程式的視覺一致性。

隨著Android4.4的釋出,谷歌最終去除了應用程式執行時系統UI中的高亮藍(bright holo blue)效果。這項技術很快將應用於所有的App,但是在你釋出下一個版本前,現在就可以利用這項新的半透明系統欄使你的App與眾不同。有兩種樣式可以操作該系統欄:windowTranslucentStatuswindowTranslucentNavigation

在主題(theme)中設定windowTranslucentStatustrue將填充頂部的狀態列區域。(有虛擬按鍵的裝置上)設定windowTranslucentNavigationtrue將填充底部導航欄的區域。這兩種樣式預設會把應用的內容放到系統欄下面。如果僅僅想擴充套件背景樣式到系統欄下,設定fitsSystemWindowstrue會增加檢視的Padding值讓你的佈局恢復正常大小,並且可以把背景擴大。

下一步要做什麼呢?

這就引出了一個重要的關於設計的討論。可以擴充套件內容到系統UI並不意味著我們應該這樣做。很多情況下,這種風格設計並不合適。如果你把工具欄擴充套件到狀態列下,這會是一個很糟糕的設計。對於大多數使用action bar的場景來說,一個浮於背景之上的可見action bar作為整個視窗的背景會很突兀。當然,也有例外。

Android行為設計方面的幾個哥們,用半透明工具欄做了個小例子。這個特殊的例子效果很好,真正強調了佔據整個螢幕的內容,而且並沒有像全屏和沉浸模式一樣讓導航顯得很混亂,

fit_system_windows

Jeff Gilfelt已經寫了個輔助系統工具欄著色的函式庫,他巧妙地將檢視放到系統UI下。如果一些UI內容超出了螢幕的邊界,這個庫可以輕鬆的為導航區域著色,除此之外,還可以輕鬆地把工具欄和系統UI結合起來。即使你不打算著色系統工具欄,看一看Jeff的程式碼也是相當值得的,可以學習如何手動獲取狀態列、工具欄和導航區域的高度。

這幾個新的樣式可以讓你很好地擴充套件自己的應用檢視,比正常的視窗都要大。只需在主題中增加幾行程式碼就可以輕鬆實現,所以我鼓勵大家都嘗試一下。

相關文章