最新国产好看的视频,伊人天堂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 提供了標準的方法實現(xiàn)「狀態(tài)欄黑色字符」效果,但這個方法和 MIUI 的方法產(chǎn)生了沖突,以致于當開發(fā)者使用 Android 標準方法時,沒有出現(xiàn)預(yù)期的效果,這給很多開發(fā)者都造成了困擾,尤其是海外開發(fā)者。

為了解決這個問題,小米覺決定在MIUI 9之后兼容Android 官方的標準方案,舍棄了自己的方案,所以說,對于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)用攝像頭拍照與視頻功能

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

    Android自定義View多種效果解析

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

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

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

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

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

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

    這篇文章主要介紹了AndroidX下使用Activity和Fragment的變化詳解,文中通過示例代碼介紹的非常詳細,對大家的學(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請求的簡單封裝與使用,文中通過示例代碼介紹的非常詳細,對大家的學(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ā)之霓虹閃爍文字效果

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

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

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

最新評論

左云县| 耒阳市| 洞头县| 石台县| 淮安市| 南汇区| 宜兰市| 阆中市| 南岸区| 抚顺市| 铜川市| 淮南市| 天水市| 疏附县| 海安县| 麻城市| 辽宁省| 湛江市| 南华县| 文成县| 天等县| 永仁县| 石嘴山市| 安乡县| 中卫市| 河曲县| 蚌埠市| 郁南县| 桂东县| 广东省| 广汉市| 天柱县| 揭阳市| 望城县| 炉霍县| 马尔康县| 冕宁县| 年辖:市辖区| 西安市| 盐亭县| 彭泽县|