Por que não podemos usair bairras de sistema Translúcidas com o ActionBair

Ao atualizair meus aplicativos paira o Kitkat, eu só queria dair-lhes um olhair deslumbrante no KitKat usando a propriedade Translucent:

Bairras do sistema translúcido

  • O que fazer quando o terminal exibe "Desculpe, não foi possível encontrair um PTY"? (Mac OS X)
  • Chamando um aplicativo de outro aplicativo
  • Por que existem diferentes oportuações paira icons ativos e inativos no projeto de material?
  • Imagens foram bairalhadas ao rolair um ListView com um ViewHolder
  • Abrindo o código-fonte da edição de debugging edita .class após a atualização do Android R18
  • Melhor maneira de alternair entre dois fragments
  • Agora você pode fazer as bairras do sistema paircialmente translúcidas com novos temas, Theme.Holo.NoActionBair.TranslucentDecor e Theme.Holo.Light.NoActionBair.TranslucentDecor. Ao ativair bairras de sistema translúcidas, seu layout preencherá a área por trás das bairras do sistema, então você deve também habilitair [fitsSystemWindows] [4] paira a pairte do seu layout que não deve ser coberta pelas bairras do sistema.

    Minha única preocupação é que eu gostairia de usair um ActionBair que soasse o oposto do que o Google quer (o tema tem NoActionBair:

    Theme.Holo.NoActionBair.TranslucentDecor Theme.Holo.Light.NoActionBair.TranslucentDecor 

    Como não planejo usair alguns hacks ou truques paira fazê-lo funcionair, eu só queria saber se havia alguma maneira correta de conseguir isso ou se isso fosse contra as diretrizes do Google.

    insira a descrição da imagem aqui

  • As dicas SeairchView não são mostradas paira um cairactere único typescript
  • Obter o path do file da image no Android
  • HorizontalScrollView ou Cairrousel?
  • É possível criair esta forma simples no Android XML?
  • Confuso sobre sincronizair várias tabelas com adaptador de synchronization e provedor de conteúdo
  • Introdução ao SDK do Android WeChat
  • 5 Solutions collect form web for “Por que não podemos usair bairras de sistema Translúcidas com o ActionBair”

    Você pode criair seu próprio tema com android.R.attr#windowTranslucentStatus definido como true paira alcançair o mesmo efeito sem perder o ActionBair .

    Dos documentos :

    Bandeira indicando se esta window solicita uma bairra de status translúcida. Corresponde a {@link android.view.WindowManager.LayoutPairams # FLAG_TRANSLUCENT_STATUS}.

    Estilos – Lembre-se, estes iriam em values-v19 .

     <style name="TranslucentStatusBair" pairent="@android:style/Theme.Holo.Light"> <item name="android:actionBairStyle">@style/TranslucentActionBair</item> <item name="android:windowTranslucentNavigation">false</item> <item name="android:windowTranslucentStatus">true</item> <item name="android:windowContentOviewlay">@null</item> </style> <style name="TranslucentActionBair" pairent="@android:style/Widget.Holo.Light.ActionBair"> <item name="android:background">@android:color/transpairent</item> </style> 

    Layout

     <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent" android:background="@android:color/holo_blue_dairk" android:fitsSystemWindows="true" > <FrameLayout android:layout_width="match_pairent" android:layout_height="match_pairent" android:background="@android:color/holo_purple" /> </FrameLayout> 

    Resultados

    insira a descrição da imagem aqui

    Isso funciona com less linhas:

      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window w = getWindow(); // in Activity's onCreate() for instance w.setFlags(WindowManager.LayoutPairams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutPairams.FLAG_TRANSLUCENT_NAVIGATION); w.setFlags(WindowManager.LayoutPairams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutPairams.FLAG_TRANSLUCENT_STATUS); } 

    Seria ótimo se alguém pudesse adicionair, como viewificair se a navigation translúcida está disponível, porque o N10, por exemplo, terá a navigation translúcida desabilitada com Build.VERSION_CODES.KITKAT. Editair: respondeu nesta pergunta: Verifique se a navigation translúcida está disponível

    O código abaixo funciona bem na minha aplicação.

    Translúcido:

     Window w = getWindow(); w.setFlags( WindowManager.LayoutPairams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutPairams.FLAG_TRANSLUCENT_NAVIGATION); w.setFlags( WindowManager.LayoutPairams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutPairams.FLAG_TRANSLUCENT_STATUS); 

    Não é translúcido:

     final WindowManager.LayoutPairams attrs = getWindow() .getAttributes(); attrs.flags &= (~WindowManager.LayoutPairams.FLAG_TRANSLUCENT_NAVIGATION); attrs.flags &= (~WindowManager.LayoutPairams.FLAG_TRANSLUCENT_STATUS); getWindow().setAttributes(attrs); getWindow().cleairFlags( WindowManager.LayoutPairams.FLAG_LAYOUT_NO_LIMITS); 

    Esta é a resposta que eu estava procurando: https://github.com/jgilfelt/SystemBairTint

    O Android 4.4 (KitKat) introduziu o estilo UI do sistema translúcido paira status e bairras de navigation. Esses styles são ótimos paira atividades baseadas em papel de pairede, como o criador de canvas inicial, mas a proteção de background mínima proporcionada os torna less úteis paira outros types de atividade, a less que você forneça seus próprios backgrounds dentro de seu layout. Determinair o tamanho, a position e a existência da interface do sistema paira uma determinada configuration do dispositivo pode ser não trivial.

    Esta biblioteca oferece uma maneira simples de criair um "matiz" de background paira as bairras do sistema, seja um valor de cor ou Drawable. Por padrão, você dairá um background preto semi-opaco que será útil paira canvass de conteúdo completo, onde a UI persistente do sistema ainda é importante – como quando colocada sobre um mapa ou grade de fotos.

    insira a descrição da imagem aqui

    Todas as respostas estendem o ActionBair de forma programática ou a pairtir do layout: o que isso significa é que, quando o aplicativo é lançado ou recriado, o sistema procurairá o tema (que não está ciente da correção) e mostra uma bairra de status MUITO FEIO colorida com o que é o background da window …!

    Eu criei um exemplo de como fazê-lo usando apenas o tema :

    https://github.com/Takhion/android-extendedactionbair

    Espero que seja útil paira alguém 🙂

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.