Tela branca / preta quando o APP inicia ou tela branca / preta quando a atividade é aberta

Para desenhar a janela inteira, você precisa executar as seguintes etapas em ordem: 

1. Desenhe o fundo. 

2. Desenhe o conteúdo da própria Visualização. 

3. Desenhe a visão filha. 

4. Desenhe o conteúdo da decoração (como barras de rolagem).

Na Themejanela, você pode especificar o fundo Activityde ICON, a cor geral do texto do APP, etc., se nenhum atributo for especificado, ele usará a propriedade padrão , então nosso preto e branco e preto e vazio de DecorViewperto, Estilo decidimos definir o APP É uma tela branca ou preta.

1. Se Blacko tema da série selecionada for selecionado, a Activitytela ficará preta ao pular:

@android:style/Theme.Black"
 
  
  
  • 1
  • 1

2. Se Lighto tema da série selecionada for selecionado, a Activitytela ficará em branco ao pular:

@android:style/Theme.Light"

Solução

A solução usual é Activitydefinir um tema de fundo transparente:

<style name="SplashTheme" parent="AppTheme">
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsTranslucent">true</item>
</style>
  
   
   
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

Após a configuração acima, quando o APP e Activityinicialização, nosso StartingWindowtema será aplicado com nosso fundo transparente.Não há de fato nenhuma tela branca ou preta ao saltar, mas esta configuração terá as seguintes consequências:

1. SplashActivityApós a configuração, após o usuário clicar em nosso ícone do APP, o contentView será exibido após cerca de 2 segundos. Isso cria a ilusão de que o APP inicia devagar Activity, mas já começou, mas backgroundé transparente.Neste momento, clicar em outros locais da área de trabalho é inválido. Isso vai contra a intenção original do Google, então devemos continuar olhando para baixo. 
2. Após configurar outras atividades, overridePendingTransitiona animação de fechamento da atividade por meio do início e fechamento do conjunto será inválida. Precisa reescrever as seguintes animações com estilo:

<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/Animation.Activity.Translucent.Style</item>
<item name="android:windowFullscreen">true...
<item name="android:windowIsTranslucent">true...
</style>

<style name="Animation.Activity.Style" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">...
<item name="android:activityOpenExitAnimation">...
<item name="android:activityCloseEnterAnimation">...
<item name="android:activityCloseExitAnimation">...
</style>

<style name="Animation.Activity.Translucent.Style" parent="@android:style/Animation.Translucent"> 
<item name="android:windowEnterAnimation">...
<item name="android:windowExitAnimation">...
</style>  
  
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

3、Activity之间的跳转可能偶尔会看到桌面一闪而过(如果SplashActivity和其他Activity都设置了透明)。



Acho que você gosta

Origin blog.csdn.net/xifei66/article/details/77092610
Recomendado
Clasificación