Preciso implementar a tela inicial no meu aplicativo do favo de mel. Eu uso esse código no onCreate da atividade para mostrar o splash:
setContentView(R.layout.splash);
getActionBar().hide();
e este código para mostrar a interface principal depois de algum tempo:
setContentView(R.layout.main);
getActionBar().show();
Porém, antes que onCreate seja chamado e o splash apareça, há uma pequena quantidade de tempo quando a barra de ação é exibida.
Como posso tornar a barra de ação invisível?
Tentei aplicar o tema à atividade sem barra de ação:
<item name="android:windowActionBar">false</item>
mas nesse caso, getActionBar () sempre retorna nulo e não encontrei maneira de mostrá-lo novamente.
android
android-3.0-honeycomb
android-actionbar
Ilya Izhovkin
fonte
fonte
Theme.AppCompat.Light
... use this Como responder [1] [1]: stackoverflow.com/a/25365193/1364896Respostas:
A configuração
android:windowActionBar="false"
realmente desativa a ActionBar, mas, como você diz,getActionBar();
retorna nulo. Isso é resolvido por:Isso cria a ActionBar e a oculta imediatamente antes que ela tenha a chance de ser exibida.
Mas agora há outro problema. Depois de colocar
windowActionBar="false"
o tema, a Atividade desenha seu Título de Janela normal em vez de uma ActionBar.Se tentarmos evitar isso usando alguns dos
*.NoTitleBar
temas de estoque ou tentarmos incluir<item name="android:windowNoTitle">true</item>
nosso próprio tema, ele não funcionará.O motivo é que o ActionBar depende do título da janela para se exibir - ou seja, o ActionBar é um título da janela transformado.
Portanto, o truque que pode nos ajudar é adicionar mais uma coisa ao nosso xml do tema Atividade:
Isso tornará o título da janela com altura zero, praticamente invisível.
No seu caso, depois de terminar de exibir a tela inicial, você pode simplesmente chamar
e você terminou. A atividade começará com nenhuma cintilação da ActionBar, nem o título da janela sendo exibido.
ADDON: Se você mostrar e ocultar a ActionBar várias vezes, talvez tenha notado que a primeira exibição não é animada. A partir de então, mostrar e ocultar são animados. Se você quiser ter animação na primeira exibição também, use:
O mesmo pode ser alcançado com:
mas pode ser necessário um pouco de lógica extra para verificar se esta é a primeira exibição da atividade.
A idéia é atrasar um pouco a ocultação da ActionBar. De certa forma, deixamos o ActionBar ser mostrado, mas depois o ocultamos imediatamente. Assim, vamos além da primeira exibição não animada e a próxima exibição será considerada a segunda, assim será animada.
Como você deve ter adivinhado, há uma chance de que o ActionBar possa ser visto antes de ser oculto pela operação atrasada. Este é realmente o caso. Na maioria das vezes, nada é visto, mas, de vez em quando, é possível ver o ActionBar piscar por uma fração de segundo.
De qualquer forma, essa não é uma solução bonita, por isso agradeço sugestões.
Além do usuário da barra de ação do suporte v7, o código será:
fonte
setTheme
? Como sua resposta funciona muito bem se eu definir o tema no manifesto, mas se eu o fizeronCreate
(no meu caso, o tema depende de uma preferência pelo tema escuro), a barra de ação holo padrão piscará antes da que eu defini no meu tema de qualquer forma. Mas talvez isso valha a pena outra questão SO completa.android:theme="@android:style/Theme.NoTitleBar"
no manifesto e depoissetTheme(R.style.MyTheme)
nas atividades principaisonCreate
; Isso garante (no Android 4+) evitar o flash do holo padrãoActionBar
antes do que eu defini no meu tema (cheguei aqui procurando uma maneira de contornar isso; na verdade, não preciso de nenhuma tela inicial).getSupportActionBar().hide();
depoisgetWindow().requestFeature(Window.FEATURE_ACTION_BAR);
e tudo explode com um NPE. Alguma ideia? Problema comTheme.AppCompat
?Usando este código simples no seu arquivo .class para ocultar a barra de ação
fonte
Se você estiver usando o ActionBarSherlock, use o Tema Theme.Sherlock.NoActionBar em sua Atividade
fonte
<activity android:theme="@android:style/Theme.NoActionBar">
.Theme.Sherlock.NoActionBar
significa chamargetActionBar()
ougetSupportActionBar()
(para posteriormente mostrar a barra de ação) retorna nulo ...error: Error: No resource found that matches the given name (at 'theme' with value '@android:style/ Theme.NoActionBar').
Crie dois estilos:
Defina AppThemeNoBar como tema do aplicativo e AppThemeBar para a atividade em que você deseja mostrar a ActionBar. Usando dois estilos, você não verá a barra de Ação enquanto as visualizações estão carregando.
Verifique este link Android: ocultar barra de ação enquanto visualiza o carregamento
fonte
Oi eu tenho uma solução simples usando 2 temas
Tema da tela inicial (adicione-o ao manifesto):
<style name="SplashTheme" parent="@android:style/Theme.Holo.NoActionBar"> <item name="android:windowBackground">@color/red</item> </style>
tema normal (adicione-o em sua atividade por setTheme (R.style.Theme)):
<style name="Theme" parent="@style/Theme.Holo"> <item name="android:windowBackground">@color/blue</item> </style>
Para oferecer suporte ao SDK 10:
fonte
Eu também estava tentando ocultar a Action Bar no Android 2.2, mas nenhuma dessas soluções funcionou. Tudo termina com um acidente. Eu verifiquei o DDMS LOg, ele estava me dizendo para usar 'Theme.AppCompat'. Por fim, resolvi o problema alterando a
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
linhaem
android:theme="@style/Theme.AppCompat.NoActionBar"
e funcionou, mas o da Interface estava escuro.então eu tentei
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
e finalmente consegui o que queria.Depois disso, quando pesquisei sobre 'AppCompat' no site do desenvolvedor, obtive este.
Então eu acho que a solução para o Android 2.2 é
E desculpe pelo meu inglês ruim como sempre.
fonte
O melhor resultado para mim foi criar uma atividade com ThemeNoTitleBar e sem conteúdo como iniciador. Então essa atividade chama diretamente para a outra.
Claro que, se você quiser, pode adicionar conteúdo à Atividade Splash, mas no meu caso, eu só queria mostrar o aplicativo diretamente.
Manifesto:
Atividade:
}
fonte
Se você usar um
Activity
incluído uma tela inicial, poderá fazer isso se usarSherlockActionBar
Após a tela inicial, você pode mostrá-lo novamente com ...
Deve ser o mesmo com o nativo
ActionBar
do Android.fonte
A solução @Clerics funciona. Mas isso também parece ser um problema em alguns aplicativos nativos do Google: Google, Play Store, Conversar. Também outros grandes aplicativos como o skype.
O problema é que o problema não está no tamanho do arquivo, mas sim no tamanho do arquivo que você instalou no arquivo.
Adicione no seu manifesto as seguintes tags de aplicativo ou atividade:
E então em sua atividade principal:
fonte
melhor e simples
requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
fonte
2015, usando a biblioteca do suporte v7 com o tema AppCompat, defina esse tema para sua atividade.
fonte
Pois
Splashscreen
você deve usar esta linhamanifest
e não usargetActionBar()
e uma vez quando o Splash
Activity
terminar noActivity
uso principal abaixo ou nadafonte
<item android:name="android:windowActionBar">true</item>
se livra desse erro, mas não sei se ele ainda funciona.Tente isso, funciona para mim:
Abaixo se livra da barra de título da atividade
Abaixo, elimina a barra de notificação para tornar a atividade em tela cheia
(Exemplo completo abaixo) Observe: esses métodos foram chamados antes de definir a exibição do conteúdo de nossa atividade
fonte
isso pode ser útil,
adicione isso ao seu manifesto
Felicidades
fonte
A melhor maneira de encontrar depois de ler todas as opções disponíveis é definir o tema principal sem o ActionBar e, em seguida, configurar o MyTheme no código no pai de todas as atividades.
Manifesto:
BaseActivity:
Dessa forma, ajuda-me a evitar o ActionBar ao iniciar o aplicativo!
fonte
As soluções já postadas vieram com o efeito colateral, que a primeira chamada .show () não animava o ActionBar para mim. Eu tenho outra solução legal, que corrigia isso:
Crie um drawable transparente - algo assim:
Defina o plano de fundo real da barra de ação como uma exibição personalizada invisível que você define na barra de ação:
Defina o plano de fundo transparente para a barra de ação no onCreate:
Imortante: não oculte a barra de ação imediatamente no onCreate, mas com um pouco de atraso depois - por exemplo, quando o layout terminar com a criação:
Antes de sua primeira chamada .show (), defina a exibição personalizada como visível:
fonte
Caso você tenha nulo porque está usando a biblioteca de suporte , em vez de
getActionBar()
precisar ligargetSupportActionBar()
.fonte
Basta adicionar isso à sua MainActivity na função onCreate.
fonte
supportActionBar?.apply { hide() }
Coloque sua tela inicial em uma atividade separada e use
startActivityForResult
oonCreate
método da sua atividade principal para exibi-la. Isso funciona porque, de acordo com os documentos:Provavelmente, você deve fazer isso apenas se o argumento
onCreate
fornull
(indicando um novo lançamento de sua atividade, em vez de uma reinicialização devido a uma alteração na configuração).fonte
Eu ainda tinha erro com o ponteiro nulo e, finalmente, ajudou quando chamei primeiro getWindow (). RequestFeature () e depois super.onCreate ()
fonte
Basta adicionar isso no seu styles.xml
fonte
Na verdade, você poderia simplesmente definir respingo
Activity
comNoActionBar
e definir o seu principalactivity
com barra de ação.fonte
A melhor maneira de fazer isso é fazer a primeira atividade como atividade em branco e o conteúdo que você deseja colocar e depois de algum tempo acionar outra atividade. Seguindo esse caminho, você pode fazer a primeira atividade como sua tela inicial sem barra de ação ou qualquer coisa. Heres minha primeira atividade
Depois disso, você poderá colocar sua atividade como primeira atividade. Se você não quiser barra de ação em nenhuma tela, adicione-a aos seus estilos.
fonte
O Android studio fornece um modelo de compilação para tela cheia. Se você usa o Android studio, pode seguir a etapa abaixo para implementar a atividade em tela cheia.
Feito. O Android studio fez seu trabalho, agora você pode verificar o código em tela cheia.
fonte
esta é a melhor maneira que usei Ir para o arquivo java, depois de
onCreate
:fonte
Sei que os links de postagem não são a melhor maneira de fazer as coisas, mas recomendo que você leia a documentação a seguir do próprio Google. Este é o documento oficial do Android sobre como controlar a interface do usuário do sistema (coisas como barra de ação, barra de navegação etc.). Infelizmente, as informações são demais para serem postadas diretamente, mas depois de ler isso, você entenderá exatamente como mostrar e ocultar recursos, independentemente da versão em que está desenvolvendo, é tão simples!
Incase o link nunca muda, ele pode ser encontrado sob a documentação android oficial sob treinamento -> começando -> Melhores práticas para a interface de usuário -> gestão do ui sistema
https://developer.android.com/training/system-ui/index.html
fonte
você pode usar isso:
getSupportActionBar().hide();
se não funcionar, tente este:se acima não funcionar, tente assim:
em seu diretório = res / values / style.xml, abra style.xml -> há
parent
alteração de atributo emparent="Theme.AppCompat.Light.DarkActionBar"
se tudo isso não funcionar também. eu não sei mais. mas para mim funciona.
fonte