Quero alterar a cor da barra de status do meu aplicativo para que fique branco com ícones pretos (em vez do padrão preto com ícones brancos). Existe alguma maneira de fazer isso?
Com o Android M (nível de API 23) você pode conseguir isso a partir do tema com o atributo Android:windowLightStatusBar
.
Editar:
Assim como a Pdroid mencionou, isso também pode ser alcançado programaticamente:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
É possível fazer a barra de status branca com ícones cinzentos, e. Desta forma, para o SDK> = 23:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="Android:windowLightStatusBar">true</item>
</style>
no seu styles.xml e defina o colorPrimary
para white ou programaticamente:
getWindow().setStatusBarColor(Color.WHITE);
Apenas adicionado à minha atividade no Kotlin:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window.statusBarColor = Color.WHITE
}
Não há como, a menos que você tenha um controle de toda a ROM para personalizar isso manualmente. O que eu sugiro que você faça é usar uma cor cinza claro para a cor da barra de status através do seu tema como o drive google faz.
Editar: por favor, consulte a resposta @Wrekcker como isso mudou no Android M.
basta adicionar isso ao seu estilo
<item name="Android:windowDrawsSystemBarBackgrounds">true</item>
<item name="Android:statusBarColor">@Android:color/transparent</item>
set Android: windowDrawsSystemBarBackgrounds to true * . Este é um sinalizador cuja descrição é dada abaixo:
Sinalizador indicando se esta janela é responsável por desenhar o plano de fundo para as barras do sistema. Se true e a janela não estiver flutuando, as barras do sistema serão desenhadas com um plano de fundo transparente e as áreas correspondentes nessa janela serão preenchidas com as cores especificadas em {@link Android.R.attr # statusBarColor} e {@link Android.R .attr # navigationBarColor}. Corresponde a {@link Android.view.WindowManager.LayoutParams # FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS}.