最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配

 更新時間:2018年05月17日 09:00:07   作者:loading  
由于各系統(tǒng)版本的限制,沉浸式狀態(tài)欄對系統(tǒng)有要求,本篇文章主要介紹了詳解關(guān)于MIUI 9沉浸式狀態(tài)欄的最新適配,非常具有實用價值,需要的朋友可以參考下

問題:

最近更新了最新的MIUI 9 系統(tǒng),安裝上公司的應(yīng)用之后,發(fā)現(xiàn)之前適配過的沉浸式狀態(tài)欄忽然沒有效果了,感覺很郁悶的我于是去網(wǎng)上搜了一下關(guān)于小米手機狀態(tài)欄適配方面的文章,發(fā)現(xiàn)大部分文章都還是之前的適配方案:

public void setStatusBarDarkMode(boolean darkmode, Activity activity) {
  Class<? extends Window> clazz = activity.getWindow().getClass();
  try {
  int darkModeFlag = 0;
  Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
  Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
  darkModeFlag = field.getInt(layoutParams);
  Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
  extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);
  } catch (Exception e) {
   e.printStackTrace();
  }
}

于是乎就自己去小米的開放平臺逛了逛,然后就找到了問題所在:

1、在 Android 6.0 以前,Android 沒有方法可以實現(xiàn)「狀態(tài)欄黑色字符」效果,因此 MIUI 自己做了一個接口。

2、在 Android 6.0 及以上版本,Android 提供了標(biāo)準(zhǔn)的方法實現(xiàn)「狀態(tài)欄黑色字符」效果,但這個方法和 MIUI 的方法產(chǎn)生了沖突,以致于當(dāng)開發(fā)者使用 Android 標(biāo)準(zhǔn)方法時,沒有出現(xiàn)預(yù)期的效果,這給很多開發(fā)者都造成了困擾,尤其是海外開發(fā)者。

為了解決這個問題,小米覺決定在MIUI 9之后兼容Android 官方的標(biāo)準(zhǔn)方案,舍棄了自己的方案,所以說,對于MIUI9 以上版本的用戶,對于手機狀態(tài)欄深色字體的實現(xiàn)需要重新適配,小米官方也給出了最新的適配方案。

在新的 MIUI 版本(即基于 Android 6.0 ,開發(fā)版 7.7.13 及以后版本):

狀態(tài)欄深色字體:

Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

狀態(tài)欄白色字體:

int flag = window.getDecorView().getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
window.getDecorView().setSystemUiVisibility(flag);​

但是為了繼續(xù)適配之前的MIUI系統(tǒng) 需要在使用的時候同時寫上以上兩種方案

最后實現(xiàn)代碼如下:

public void setStatusBarDarkMode(boolean darkmode, Activity activity) {
  Class<? extends Window> clazz = activity.getWindow().getClass();
  try {
  int darkModeFlag = 0;
  Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
  Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
  darkModeFlag = field.getInt(layoutParams);
  Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
  extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);
  if(darkmode){
   Window window = getWindow();
   window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
   window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
   window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
  }else{
   int flag = activity.getWindow().getDecorView().getSystemUiVisibility() 
   & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
   window.getDecorView().setSystemUiVisibility(flag);​
  }
  } catch (Exception e) {
   e.printStackTrace();
  }
}

修改為以上代碼之后,終于又看到了熟悉的沉浸式效果!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android實現(xiàn)調(diào)用攝像頭拍照與視頻功能

    Android實現(xiàn)調(diào)用攝像頭拍照與視頻功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)調(diào)用攝像頭拍照與視頻功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Android自定義View多種效果解析

    Android自定義View多種效果解析

    這篇文章主要為大家詳細(xì)介紹了Android自定義View多種效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Kotlin啟動協(xié)程的三種方式示例詳解

    Kotlin啟動協(xié)程的三種方式示例詳解

    這篇文章主要為大家介紹了Kotlin啟動協(xié)程的三種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 準(zhǔn)確測量 Android 應(yīng)用中 Activity 和 Fragment 的啟動時間的詳細(xì)過程

    準(zhǔn)確測量 Android 應(yīng)用中 Activity 和 Fragmen

    在 Android 應(yīng)用開發(fā)中,了解每個 Activity 和 Fragment 的啟動時間對于性能優(yōu)化至關(guān)重要,本文將介紹幾種方法來準(zhǔn)確測量 Activity 和 Fragment 的啟動時間,并提供實際操作步驟,以幫助提升應(yīng)用的響應(yīng)速度和用戶體驗,需要的朋友可以參考下
    2024-07-07
  • AndroidX下使用Activity和Fragment的變化詳解

    AndroidX下使用Activity和Fragment的變化詳解

    這篇文章主要介紹了AndroidX下使用Activity和Fragment的變化詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • android實現(xiàn)okHttp的get和post請求的簡單封裝與使用

    android實現(xiàn)okHttp的get和post請求的簡單封裝與使用

    這篇文章主要介紹了android實現(xiàn)okHttp的get和post請求的簡單封裝與使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Android的Touch事件處理機制介紹

    Android的Touch事件處理機制介紹

    Android的Touch事件處理機制比較復(fù)雜,特別是在考慮了多點觸摸以及事件攔截之后,有需求的朋友可以參考下
    2012-11-11
  • Android編程實現(xiàn)獲取多媒體庫視頻、音頻、圖片的方法

    Android編程實現(xiàn)獲取多媒體庫視頻、音頻、圖片的方法

    這篇文章主要介紹了Android編程實現(xiàn)獲取多媒體庫視頻、音頻、圖片的方法,涉及Android針對多媒體視頻、音頻及相關(guān)專輯圖片、縮略圖等獲取操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • Android Shader應(yīng)用開發(fā)之霓虹閃爍文字效果

    Android Shader應(yīng)用開發(fā)之霓虹閃爍文字效果

    這篇文章主要為大家詳細(xì)介紹了Android Shader應(yīng)用開發(fā)之霓虹閃爍文字效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android選中突出背景效果的底部導(dǎo)航欄功能

    Android選中突出背景效果的底部導(dǎo)航欄功能

    這篇文章主要介紹了Android選中突出背景效果的底部導(dǎo)航欄功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10

最新評論

兰州市| 息烽县| 南岸区| 雷波县| 东港市| 普定县| 个旧市| 崇州市| 永修县| 诸城市| 丹东市| 三台县| 安吉县| 沾益县| 旌德县| 安庆市| 长宁县| 宜君县| 涞源县| 平舆县| 勐海县| 清徐县| 开鲁县| 张掖市| 东海县| 广丰县| 顺义区| 宁陵县| 杨浦区| 民县| 喀喇| 轮台县| 申扎县| 邵武市| 江达县| 迭部县| 林周县| 梓潼县| 容城县| 东方市| 宜川县|