android沉浸
① android沉浸式
1、如何修改狀態欄顏色。
2、如何修改狀態欄文字顏色。
3、如何不被虛擬鍵隱藏,或隱藏虛擬鍵。
4、如何消除沉浸式。
5、如何修改導航欄內部的fragment的狀態欄顏色。
可參考: https://www.imooc.com/article/74825
在styles.xml中添加style
在manifest.xml文件中進行配置
添加依賴
可以參考:暫無
以下內容可以直接復制到工具類中,在activity初始化的時候調用即可。文字顏色分亮色暗色,分別是白色和黑色。
可以參考: https://www.jianshu.com/p/ce65dc7b0b56
以下方法可以放置在工具類中方便調用。
1、不隱藏底部虛擬鍵,不隱藏狀態欄,布局頂部延伸至狀態欄頂部不被虛擬鍵遮擋,且狀態欄透明。
2、隱藏底部的虛擬鍵和狀態欄
fragment的狀態欄顏色其實就是activity狀態欄顏色,所以還是去改變activity的狀態欄顏色這么一個思路。
使用第三方組件,所以添加依賴
給導航欄控制項添加tab切換事件監聽,然後動態改變狀態欄顏色即可,同樣使用barUtils工具類。
最後在推薦一個github上的關於沉浸式效果的組件:
https://github.com/yanzhenjie/Sofia
② Android 沉浸式/透明式狀態欄、導航欄
Android 從4.4開始引進透明狀態欄和導航欄的概念,並且在5.0進行了改進,將透明變成了半透明的效果。雖然此特性最早出現在ios,但不否認效果還是很贊的。
至於4.4以下的手機,就不要考慮此特性了,好在4.4以下的手機份額已經非常小了。
我們先來看一下透明狀態欄的實現,兩種常見效果圖如下:
虛擬導航欄並不是所有的手機都有,華為的手機多比較常見,就是上圖屏幕底部按鈕那塊區域。設置導航欄和狀態欄類似:
這是官方的解釋,大致意思就是我們在布局的最外層設置 android:fitsSystemWindows="true",會在屏幕最上方預留出狀態欄高度的padding。
由於fitsSystemWindows屬性本質上是給當前控制項設置了一個padding,所以我們設置到根布局的話,會導致狀態欄是透明的,並且和窗口背景一樣。
但是多數情況,我們並不在根布局設置這個屬性,我們想要的無外乎是讓內容沉浸在狀態欄之中。所以我們經常設置在最上端的圖片背景、Banner之類的,如果是Toolbar的,我們可以使用一層LinearLayout包裹,並把這個屬性設置給LinearLayout,這樣就可以避免Toolbar的內容下沉了。如:
上述方法可以解決普通頁面的透明式狀態欄需求,如有復雜需求可以參考下面這些:
Android 系統狀態欄沉浸式/透明化完整解決方案
Android 沉浸式狀態欄的實現
Android沉浸式狀態欄(透明狀態欄)最佳實現
還有開源庫推薦: ImmersionBar