Olá,
Desejo definir a cor de fundo da barra de status como completamente transparente. Mas eu não posso mudar, fica meio transparente (preto), eu simplesmente não consigo mudar.
Eu tentei colocá-los no meu tema
<style name="AppThemeMeterialCompat" parent="MaterialDrawerTheme.Light.DarkToolbar.TranslucentStatus">
<item name="colorPrimaryDark"><strong i="8">@android</strong>:color/transparent</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
e eles no construtor
.withTranslucentStatusBar(true)
.withFullscreen(true)
Por favor ajude
@buraktamturk qual telefone você usa?
Você tentou apenas com Fullscreen?
O fato é que isso é gerenciado pelo Android e é realmente difícil torná-lo totalmente transparente.
Se você deseja gerenciar tudo sozinho e só precisa do conteúdo do DrawerLayout. em seguida, use o método .buildView () que fornecerá a você o contentView, que pode ser aumentado dentro do DrawerLayout
Estou usando o Nexus 5 com Android versão 5.1.
Agora tentado apenas withFullscreen e withFullscreen e sem personalização no Tema, acontece a mesma coisa.
Acho que este commit deveria ter resolvido meu problema. Não tenho certeza se abaixo deste comentário
//if we are fullscreen disable the ScrimInsetsLayout
é acionado ou não
Editar: commit https://github.com/mikepenz/MaterialDrawer/commit/c2707aa2e56751b184e48f5128318dd8f07f7c42
@buraktamturk você pode conseguir isso fazendo o seguinte:
<strong i="7">@Override</strong>
protected void onCreate(Bundle savedInstanceState) {
...
//make full transparent statusBar
if (Build.VERSION.SDK_INT >= 19 && Build.VERSION.SDK_INT < 21) {
setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, true);
}
if (Build.VERSION.SDK_INT >= 19) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
if (Build.VERSION.SDK_INT >= 21) {
setWindowFlag(this, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, false);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
}
public static void setWindowFlag(Activity activity, final int bits, boolean on) {
Window win = activity.getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
if (on) {
winParams.flags |= bits;
} else {
winParams.flags &= ~bits;
}
win.setAttributes(winParams);
}
Muito obrigado! Funcionou!
@buraktamturk sem problema: P
Isso não funciona na atividade inicial se o tema for Theme.Translucent.NoTitlebar
Obrigado amigo está funcionando
seu trabalho thanxz e eu quero mudar minha cor do ícone da barra de status. é possível. Mikepenz
@mikepenz Obrigado pela resposta :), mas estou tendo dificuldade em entender o que acontece aqui. Você pode explicar o que acontece, especialmente
if (on) {
winParams.flags |= bits;
} else {
winParams.flags &= ~bits;
}
e ou está aqui. Eu não entendo muito bem, por que nós os usamos?
View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
@pesjak, esta resposta está desatualizada. consulte o aplicativo de amostra para várias implementações, incluindo uma com um comportamento de tela inteira.
as bandeiras são btw. simples android aqui. e o "|" e assim por diante são operações binárias
Para a tela inteira, encontrei https://github.com/mikepenz/MaterialDrawer/blob/develop/app/src/main/java/com/mikepenz/materialdrawer/app/FullscreenDrawerActivity.java , e você comentou. Mas o resultado não é o que desejo: /. Estive olhando para o aplicativo de amostra, mas não consigo encontrar o mesmo resultado. Este é o resultado que o código comentado dá https://i.stack.imgur.com/oq38g.png que é exatamente o que eu quero 💃.
Você sabe qual é a resposta atualizada se não for muito problema, porque eu não consigo encontrar :(
se funcionar para você com o código comentado, use-o.
Basicamente, essas coisas não são relevantes para a biblioteca.
A biblioteca usa um DrawerLayout
normal e o exemplo apenas mostra uma visão de casos diferentes.
tudo o que você pode conseguir com um DrawerLayout
normal pode ser feito com esta biblioteca.
As coisas relevantes ainda devem ser pesquisadas nos documentos do Android ou em fontes alternativas.
Muito obrigado pela ajuda.
Atenciosamente, Primoz
Na segunda-feira, 8 de outubro de 2018, 19:07 Mike Penz, [email protected] escreveu:
se funcionar para você com o código comentado, use-o.
Basicamente, essas coisas não são relevantes para a biblioteca.A biblioteca usa um DrawerLayout normal e o exemplo mostra apenas um
ver casos diferentes.tudo o que você pode conseguir com um DrawerLayout normal pode ser feito
com esta biblioteca.As coisas relevantes ainda devem ser pesquisadas nos documentos do Android ou
fontes alternativas.-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/mikepenz/MaterialDrawer/issues/254#issuecomment-427910073 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AG44ygAITvqnJ00xNXLuURwvijLHfKwvks5ui4ZjgaJpZM4EHL2_
.
Não funciona para mim ter API 19, no meu caso, não funciona este código
public static void setWindowFlag(Activity activity, final int bits, boolean on) {
Window win = activity.getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
if (on) {
winParams.flags |= bits;
} else {
winParams.flags &= ~bits;
}
win.setAttributes(winParams);
}
me ajude
Comentários muito úteis
@buraktamturk você pode conseguir isso fazendo o seguinte: