因為是主界面包含2個fragment,而這兩個fragment的頭部顏色又不一樣。(我手機是6.0的系統(tǒng))所以第一個 colorAccent切換到第二個red的fragment的時候默認的狀態(tài)欄依舊為colorAccent,看起來太別扭了。
當然似乎實現方法有多種。就記錄一下我采取的方案吧。其實這也是我看到一位簡書上面的作者的文章做的。可惜今天找不到那個文章地址了。怕以后在遇到自己記錄一下順便加深印象、
首先在activity處理
恩if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(getResources().getColor(R.color.colorAccent));
}
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
}
然后在創(chuàng)建value-19和value-21創(chuàng)建所用的主題style和value中名字一樣
自帶的主題

19下面的主題

21下面的主題

然后是在需要的fragment的布局文件中給跟布局設置背景色(如果背景色影響到內部內容,建議在外邊套一層RelativeLatout之類的。)

這個paddingtop是跟版本有關的。19以下為25,之后為0,所以需要在value-19和value下分別創(chuàng)建dimens文件處理。