最近設(shè)計突然整改了這個app樣式風(fēng)格,需要打開app的時候?qū)顟B(tài)欄背景變成白色逾雄,字體改為黑色阀溶。
一般app的默認(rèn)字體顏色都是白色,其實(shí)Google有給出修改方案鸦泳,也很簡單银锻。
public static void setAndroidNativeLightStatusBar(Activity activity, boolean dark) {
View decor = activity.getWindow().getDecorView();
if (dark) {
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
} else {
decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
}
dark為true的時候?yàn)樯钌琭alse為淺色做鹰。
有個問題是這樣設(shè)置后击纬,activity整個頁面會沉浸進(jìn)去,需要加上這個的代碼:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
View content = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
if (content != null) {
content.setFitsSystemWindows(true);
}
}
或者直接在根布局設(shè)置FitsSystemWindows為true钾麸;
或者直接弄個空布局用來占位更振。
我用的第一種。
本以為這樣相安無事饭尝,但是有個巨大的坑肯腕,切換Activity狀態(tài)欄閃爍。在性能比較好的機(jī)器上不是很明顯芋肠,我在兩個測試機(jī)上表現(xiàn)的閃爍程度不一乎芳,小米5c閃爍的尤為明顯遵蚜,華為mate8稍微好點(diǎn)帖池。
我在網(wǎng)上找了一個解決辦法:
在應(yīng)用主題中加入這個屬性: <item name="android:windowIsTranslucent">true</item>
確實(shí)有效果,但是華為mate8卻閃退了吭净,不知道有什么更好的解決辦法沒有睡汹,暫時沒找到了。