Primeiro, não é uma duplicata, como em Como alterar a cor de fundo da barra de status do Android
Como altero a cor da barra de status, que deve ser a mesma da barra de navegação.
Quero que a cor da barra de status seja igual à cor da barra de navegação
android
android-navigation
android-statusbar
codercat
fonte
fonte
android:statusBarColor
. Você pode simplesmente adicioná-lovalues-v21/styles.xml
.Respostas:
O Android 5.0 Lollipop introduziu o tema Design de materiais, que colore automaticamente a barra de status com base no
colorPrimaryDark
valor do tema.Isso é suportado no pré-pirulito do dispositivo, graças à biblioteca support-v7-appcompat a partir da versão 21. Blogpost sobre suporte appcompat v21 de Chris Banes
Leia mais sobre o Tema material no site oficial do Android Developers
fonte
Atualizar:
Pirulito:
Adicionado no nível 21 da API
O Android Lollipop trouxe com ele a capacidade de alterar a cor da barra de status no seu aplicativo para uma experiência mais imersiva do usuário e em sintonia com a do Google
Material Design Guidelines
.Aqui está como você pode alterar a cor da barra de status usando o novo
window.setStatusBarColor
método introduzido noAPI level 21
.Alterar a cor da barra de status também requer a configuração de dois sinalizadores adicionais na janela; você precisa adicionar a
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
bandeira e limpá-laFLAG_TRANSLUCENT_STATUS
.Código de trabalho:
...
Referência oficial do desenvolvedor: setStatusBarColor (int)
Exemplo: material-design-em qualquer lugar
Chris Banes Blog- appcompat v21: design de material para dispositivos pré-pirulito!
O
transitionName
plano de fundo da visualização seráandroid:status:background
.fonte
android:statusBarColor
no seuvalues-v21/styles.xml
arquivo como androiddocs.com/training/material/theme.html assim<item name="android:statusBarColor">@color/primary_color</item>
Coloque este é o seu values-v21 / styles.xml, para habilitá-lo no Lollipop:
fonte
targeApi
atributo se desejar manter um único arquivo de estilo. Leia minha resposta para referência stackoverflow.com/a/48565459/4291272essa é uma maneira muito fácil de fazer isso sem nenhuma biblioteca: se a versão do sistema operacional não for suportada - no kitkat -, nada acontecerá. eu faço estas etapas:
então eu fiz este método:
você também precisa dos dois métodos para obter a barra de ação e a altura da barra de status:
a única coisa que você precisa é desta linha para definir a cor da barra de status:
fonte
Como o @Niels disse, você deve colocar no values-v21 / styles.xml:
Mas adicione
tools:targetApi="lollipop"
se você quiser um único styles.xml, como:fonte
Bem, a solução Izhar estava OK, mas, pessoalmente, estou tentando evitar um código que se parece com isso:
Também não gosto de duplicar código. Na sua resposta, tenho que adicionar essa linha de código em todas as atividades:
Então, peguei a solução Izhar e usei XML para obter o mesmo resultado: Crie um layout para o StatusBar status_bar.xml
Observe os atributos de altura e elevação, estes serão definidos em valores, valores-v19, valores-v21 mais abaixo.
Inclua esse layout no layout de atividades usando include, main_activity.xml:
Para a barra de ferramentas, adicione o atributo de margem superior:
No appTheme style-v19.xml e styles-v21.xml, adicione a janelaTranslucent attr:
styles-v19.xml, v21:
E, finalmente, em seu dimens, dimens-v19, dimens-v21, adicione os valores para topMargin da barra de ferramentas e a altura do statusBarHeight: dimens.xml por menos de KitKat:
A altura da barra de status é sempre 24dp dimens-v19.xml para KitKat e acima:
dimens-v21.xml para Lolipop, basta adicionar a elevação, se necessário:
Este é o resultado para o Jellybean KitKat e o Lollipop:
fonte
Você pode usar este código simples:
Uma linha em Kotlin:
Resposta original com Java e verificação manual da versão:
fonte
ContextCompat
. Em Kotlin-lo, então é apenas isso:window.statusBarColor = ContextCompat.getColor(this, R.color.colorName)
Basta criar um novo tema em res / values / styles.xml, onde você altera o "colorPrimaryDark", que é a cor da barra de status:
E modifique o tema da atividade no AndroidManifest.xml para o desejado, na próxima atividade, você pode alterar a cor novamente para a original selecionando o tema original:
É assim que seus res / values / colors.xml devem se parecer:
fonte
Para alterar a cor do lolipop acima, basta adicioná-lo ao seu styles.xml
mas lembre- se, se você quiser ter uma cor clara para a barra de status, adicione esta linha também
fonte
Você pode alterar a cor da barra de status com esta função. funciona no Android L significa API 21 e superior e precisa de uma sequência de cores como
"#ffffff"
.fonte
Eu tinha esse requisito: Alterar programaticamente a cor da barra de status, mantendo-a transparente , para permitir que a Gaveta de Navegação se desenhe sobrepondo a barra de status transparente.
Não posso fazer isso usando a API
Se você marcar aqui no estouro de pilha, todos os que estão antes dessa linha de código configuram a transparência da barra de status para sólida com
Eu sou capaz de gerenciar a cor e a transparência da barra de status assim:
Android 4: não há muito o que fazer, porque você não pode gerenciar a cor da barra de status a partir da API ... a única coisa que você pode fazer é definir a barra de status como translúcida e mover um elemento colorido da sua interface do usuário sob o status Barra. Para fazer isso, você precisa brincar com
no seu layout principal. Isso permite que você desenhe seu layout na barra de status. Então você precisa brincar com alguns preenchimentos com a parte superior do layout principal.
Android 5 e superior: você precisa definir um estilo com
isso permite que a gaveta de navegação se sobreponha à barra de status.
Para alterar a cor, mantendo a barra de status transparente, você deve definir a cor da barra de status com
onde drawerLayout é definido assim
fonte
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
. De qualquer forma, após dias de pesquisa, encontrei algo que realmente funciona (testado apenas no Lolllipop no momento). ObrigadoEdite o colorPrimary no colors.xml em Valores para a cor que você deseja que a Barra de Status seja. Por exemplo:
fonte
Para alterar a cor da barra de status, vá para
res/values-v21/styles.xml
e cor da barra de statusfonte
Se você deseja alterar a cor da barra de status programaticamente (e desde que o dispositivo tenha o Android 5.0). Essa é uma maneira simples de alterar statusBarColor de qualquer Atividade e métodos muito fáceis quando fragmentos diferentes têm cores de barra de status diferentes.
fonte
Se você deseja trabalhar no Android 4.4 e superior, tente isso. Refiro-me à resposta de Harpreet e a este link. Android e a barra de status transparente
Primeiro, chame o método setStatusBarColored no método onCreate da Activity (coloquei em uma classe util). Eu uso uma imagem aqui, você pode alterá-la para usar uma cor.
Antes:
Depois de:
A cor da barra de status foi alterada, mas a barra de navegação está cortada; portanto, precisamos definir a margem ou o deslocamento da barra de navegação no método onCreate.
A barra de status ficará assim.
fonte
Foi o que funcionou para mim no KitKat e com bons resultados.
fonte
Mais uma solução:
fonte
altere o colorPrimaryDark para a cor desejada para o arquivo res / values / styles.xml
fonte