當前位置:編程學習大全網 - 編程軟體 - 如何實現android沈浸式狀態欄

如何實現android沈浸式狀態欄

沈浸式通知欄Android4.4以上才支持的新特性。4.3不支持。

具體實現方式如下:

1.新建個公***style,設置android:fitsSystemWindows=true

<!-- 設置應用布局時是否考慮系統窗口布局;true --> <style name="AppBaseTheme" parent="android:Theme.Light.NoTitleBar"> <item name="android:fitsSystemWindows">true</item> </style>

2. 修改AndroidManifest.xml,讓所有的activity樣式默認設置為AppBaseTheme(*不同項目要靈活處理,筆者項目的activity樣式都是統壹的所以這樣設置沒問題,但是實際情況下不同的activity可能調用的樣式不壹樣,需要讀者自行按自己的項目來設置)

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppBaseTheme" android:name="****">

3.新增沈浸式通知欄實現類,實現原理很簡單。

1)判斷當前系統版本是不是4.4以上,判斷代碼如下:

if (VERSION.SDK_INT >= VERSION_CODES.KITKAT)

2)如果大於4.4則設置狀態欄透明化,代碼如下:

window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

3)獲取activity的根rootView(DecorView),然後創建壹個新的view stateBarView並把它添加到rootView(這裏手動給它設置個ID,下次進來時先判斷rootView是否已創建stateBarView,如果已創建則直接獲取該View這樣可以防止重復創建,導致內存泄露)

  • 上一篇:中達優控溫度不能讀取
  • 下一篇:濟源昊駿實業有限公司怎麽樣?
  • copyright 2024編程學習大全網