相容 Android 4.4 透明狀態列與導航欄
Android 系統自4.2 開始 UI 上就沒多大改變,4.4 也只是增加了透明狀態列與導航欄的功能,如圖
左邊為 4.2.2 右邊為 4.4.2
那麼現在我就來給大家講解下如何使用這個新特性,讓你的 app 跟隨潮流,當然如果你不在乎外觀就算了,
使用這個特效能開發出很漂亮的UI,尤其對於 google 原生系統,螢幕下方的導航欄白白佔據一塊螢幕空間,看起來很不爽
圖為 sommth 客戶端,
OK廢話不多講,開始講技術吧,第一種方法,在程式碼設定:
直接呼叫上面2行程式碼可以透明,但是你會發現你的 view 跑到 actionbar 上面去了,很明顯 google 的意圖是使你的 view 可以佔據整個螢幕,然後 狀態列和導航欄 透明覆蓋在上面很明顯這樣不可行。
那有沒有辦法使你的 view 保持原來大小呢?
有,你需要在這個 activity 的 layout xml 檔案新增兩個屬性
這樣狀態列的背景就是你的 activity 的主背景,倘若actionbar 在,將會很難看,如圖:
事實證明,google 並沒有提供一個比較好的解決方案,他的 透明狀態列與導航欄的應用侷限於,全屏閱讀文字或玩遊戲那種情景,
第二種方式,是是設定 theme 屬性
如果你使用自定主題,只需在在 values-19 檔案新增以下屬性:
剛剛說了這個使用有侷限性,不過好在有一個開源的東西
https://github.com/jgilfelt/SystemBarTint
左邊為 4.2.2 右邊為 4.4.2
那麼現在我就來給大家講解下如何使用這個新特性,讓你的 app 跟隨潮流,當然如果你不在乎外觀就算了,
使用這個特效能開發出很漂亮的UI,尤其對於 google 原生系統,螢幕下方的導航欄白白佔據一塊螢幕空間,看起來很不爽
圖為 sommth 客戶端,
OK廢話不多講,開始講技術吧,第一種方法,在程式碼設定:
直接呼叫上面2行程式碼可以透明,但是你會發現你的 view 跑到 actionbar 上面去了,很明顯 google 的意圖是使你的 view 可以佔據整個螢幕,然後 狀態列和導航欄 透明覆蓋在上面很明顯這樣不可行。
那有沒有辦法使你的 view 保持原來大小呢?
有,你需要在這個 activity 的 layout xml 檔案新增兩個屬性
這樣狀態列的背景就是你的 activity 的主背景,倘若actionbar 在,將會很難看,如圖:
事實證明,google 並沒有提供一個比較好的解決方案,他的 透明狀態列與導航欄的應用侷限於,全屏閱讀文字或玩遊戲那種情景,
第二種方式,是是設定 theme 屬性
如果你使用自定主題,只需在在 values-19 檔案新增以下屬性:
剛剛說了這個使用有侷限性,不過好在有一個開源的東西
https://github.com/jgilfelt/SystemBarTint
可以設定 statusbar 背景,原理是在 Window 的 DocView 新增 view,大家可以下載這個專案學習如何使用
SystemBarTint-master.zip //自行百度下載
相關文章
- 直播app原始碼,狀態列和導航欄設定成透明狀態APP原始碼
- android 自定義狀態列和導航欄分析與實現Android
- Android 顯示、隱藏狀態列和導航欄Android
- Android全屏與透明狀態列Android
- iOS狀態列和導航欄的設定iOS
- Android沉浸式設計(狀態列和導航欄)——封裝Android封裝
- Android 狀態列透明Android
- 直播app系統原始碼,Flutter中導航欄和狀態列設定成透明APP原始碼Flutter
- 管理系統狀態列和導航欄(翻譯)
- Android 7.0 SystemUI 之啟動和狀態列和導航欄簡介AndroidSystemUI
- 讓Android支援透明狀態列Android
- 關於iOS 狀態列、導航欄的幾處筆記iOS筆記
- flutter佈局-9-appbar導航欄和狀態列FlutterAPP
- Android透明狀態列解決方案Android
- flutter全屏沉浸式狀態列+標題欄|flutter凸起Tabbar導航FluttertabBar
- Android開發筆記——透明狀態列與透明虛擬按鍵Android筆記
- 關於android透明狀態列總結Android
- android去掉標題欄和狀態列Android
- iOS專案開發實戰——自定義設定導航欄和狀態列背景iOS
- iOS 導航欄顏色透明度漸變iOS
- win10怎麼把狀態列變透明_win10狀態列變透明方法Win10
- Android UI體驗之全屏沉浸式透明狀態列效果AndroidUI
- 短視訊平臺原始碼,透明導航欄 AppBar原始碼APP
- iOS 導航欄背景顏色完全透明及漸變iOS
- 直播系統開發,實現自適應手機狀態列高度的頂部導航欄
- 短視訊平臺開發,畫面靜置時隱藏狀態列、導航欄、進度條
- android狀態列一體化(沉浸式狀態列)Android
- Android螢幕中隱藏標題欄和狀態列Android
- c#選單欄menustrip工具欄toolstrip狀態列C#
- 直播app開發,flutter 狀態列 AppBar 設定透明和半透明APPFlutter
- WordPresscategory導航欄Go
- 直播軟體搭建,修改狀態列、導航條顏色及文字顏色
- [快速搞定]android 狀態列一體化 沉浸式狀態列Android
- Android全面屏虛擬導航欄適配Android
- Android官方導航欄ActionBar使用詳解Android
- android之狀態列提示Android
- 一行程式碼使Android狀態列變沉浸式透明化行程Android
- 頭部導航欄也是動態的,板塊裡面的內容根據頭部導航欄動態展現資料