StatusBar
の色をプログラマチックに変更しようとしていますが、成功しません。私はMaterialDrawerライブラリを使ってnav drawer btwを作成しています。MaterialDrawerライブラリを使用してステータスバーの色を変更できません
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(Color.BLUE);
}
はまた、テーマを試してみました:
if (dark)
setTheme(R.style.AppTheme_Dark_NoActionBar);
else
setTheme(R.style.AppTheme_NoActionBar);
<style name="AppTheme.Dark.NoActionBar" parent="MaterialDrawerTheme">
<item name="android:colorPrimary" tools:targetApi="lollipop">#ffffff</item>
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">#cfcfcf</item>
<item name="android:statusBarColor">#cfcfcf</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:colorAccent" tools:targetApi="lollipop">@color/md_black_1000</item>
<item name="android:windowContentTransitions" tools:targetApi="lollipop">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="drawerArrowStyle">@style/MaterialDrawer.DrawerArrowStyle.Black</item>
<item name="android:datePickerDialogTheme">@style/DatePickerDialogThemeDark</item>
<item name="android:timePickerDialogTheme">@style/DatePickerDialogThemeDark</item>
</style>
<style name="AppTheme.NoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="android:colorAccent" tools:targetApi="lollipop">@color/primary</item>
<item name="windowNoTitle">true</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:datePickerDialogTheme">@style/DatePickerDialogThemeLight</item>
<item name="android:timePickerDialogTheme">@style/DatePickerDialogThemeLight</item>
</style>
<style name="AppTheme" parent="MaterialDrawerTheme.Light">
<item name="android:colorPrimary" tools:targetApi="lollipop">@color/colorPrimary</item>
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">@color/colorPrimaryDark
</item>
<item name="android:colorAccent" tools:targetApi="lollipop">@color/md_blue_300</item>
<item name="android:windowContentTransitions" tools:targetApi="lollipop">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>
<item name="drawerArrowStyle">@style/MaterialDrawer.DrawerArrowStyle</item>
</style>
そして最後に、私はインターネットで見つかりましたが、誰が働いていない、ステータスバーが常にprimaryDark
はプログラム的にしようとしたショー
しようとしました貴様のソリューションこのMaterialDrawerライブラリのコードを使用してみました:
drawer.getDrawerLayout().setStatusBarBackgroundColor(color);
drawer
は、DrawerBuilder
の結果です。このアプリは、ユーザーがログイン/レジスタに入力したいくつかの変数に応じて、2つの原色を持っています。この色は青と白です。私が上に掲示したコードを使用しても、StatusBarがprimaryDarkで色付けされていることを除いて、アプリケーションは素晴らしいです。私は色を変えることができる唯一のモードはcolorPrimary変更または色にこれを置くことです:
<color name="materialize_primary_dark">@color/md_red_500</color>
しかしprimaryDarkがそうであるように、色を変更し、私はホワイトモードと青のための青のために白に、それを変更する必要がありますモード。
ありがとうございました。
削除THOSの一部を参照することができます "window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);" おそらくそれは動作します! –
試しましたが、色は変わりません。私はそれを上書きするMaterialDrawerのものだと思いますが、わかりません。 – VictorBG