亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將狀態欄更改為白色

將狀態欄更改為白色

UYOU 2021-11-11 13:18:52
我正在嘗試僅在一項活動中將狀態欄顏色更改為白色,但圖標幾乎不顯示:我正在使用此代碼: Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT);我無法更改 ColorPrimaryDark,因為我已經為所有應用程序設置了一種顏色。提前致謝。編輯我在評論一個初學者的錯誤。這有一個非常簡單的解決方案,只需為清單文件中的此活動設置一個主題:android:theme="@style/Theme.AppCompat.Light.NoActionBar"正如@shahab 所說,我的 Activity 上的這個 java 代碼是:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {    Window window = getWindow();    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);    window.setStatusBarColor(Color.TRANSPARENT);}
查看完整描述

3 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

更改狀態欄顏色僅適用于棒棒糖上方的 android


1.您可以通過此行以編程方式更改狀態欄顏色:


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

    getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.your_color));

}

2.您可以使用平滑過渡動畫來做到這一點:


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

    int startColor = getWindow().getStatusBarColor();

    int endColor = ContextCompat.getColor(context, R.color.your_color);

    ObjectAnimator.ofArgb(getWindow(), "statusBarColor", startColor, endColor).start();

}

3.或者您可以將其添加到 values/styles.xml 文件中的主題樣式中。item colorPrimaryDark 將用于您的應用程序狀態欄顏色


<item name="colorPrimaryDark">@color/colorPrimaryDark</item>

但是要將狀態欄圖標顏色更改為深色,您可以使用 SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 標志,該標志可用于 M 以上的 android


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

}

或將其添加到您的主題樣式 xml:


<item name="android:windowLightStatusBar">true</item>


查看完整回答
反對 回復 2021-11-11
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

onCreate()方法中使用它:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

這適用于 API 23+。


查看完整回答
反對 回復 2021-11-11
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

Window window = getWindow();

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

    window.setStatusBarColor(Color.TRANSPARENT);

}


else {

    window.setStatusBarColor(Color.WHITE);

}


查看完整回答
反對 回復 2021-11-11
  • 3 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號