Como faço uma atividade em tela cheia? Quero dizer, sem a barra de notificação. Alguma ideia?
606
Como faço uma atividade em tela cheia? Quero dizer, sem a barra de notificação. Alguma ideia?
Você pode fazer isso programaticamente:
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
Ou você pode fazer isso através do seu AndroidManifest.xml
arquivo:
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
Editar:
Se você estiver usando AppCompatActivity, precisará adicionar um novo tema
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
e depois use.
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
Obrigado a https://stackoverflow.com/a/25365193/1646479
@android:style/Theme.Holo.Light.NoActionBar.Fullscreen
AppCompatActivity
, você precisa colocarrequestWindowFeature
antessuper.onCreate
. Caso contrário, você receberá:android.util.AndroidRuntimeException: requestFeature() must be called before adding content
Existe uma técnica chamada Modo Imersivo em Tela Cheia disponível no KitKat .
Exemplo
fonte
Se você não quiser usar o tema
@android:style/Theme.NoTitleBar.Fullscreen
porque já está usando um tema de sua preferência, poderá usá-loandroid:windowFullscreen
.No AndroidManifest.xml:
Em styles.xml:
fonte
No arquivo AndroidManifest.xml :
Ou no código Java :
fonte
Se você estiver usando AppCompat e ActionBarActivity, use este
getSupportActionBar().hide();
fonte
Seja cuidadoso com
Se você estiver usando algum método para definir a barra de ação da seguinte maneira:
Isso causará uma exceção de ponteiro nulo.
fonte
Tente isso com appcompat de
style.xml
. Ele fornece suporte para todas as plataformas.fonte
O uso do Android Studio (a versão atual é 2.2.2 no momento) é muito fácil de adicionar uma atividade em tela cheia.
Veja os passos:
Feito!
Agora você tem uma atividade em tela cheia feita com facilidade (consulte a classe java e o layout da atividade para saber como as coisas funcionam)!
fonte
Para aqueles que usam AppCompact ... style.xml
Em seguida, coloque o nome no seu manifesto ...
fonte
Primeiro, você deve definir o tema do seu aplicativo com "NoActionBar", como abaixo
Em seguida, adicione essas linhas na sua atividade de tela cheia.
Ele ocultará a barra de ação / barra de ferramentas e também a barra de status em sua atividade de tela cheia
fonte
AndroidManifest.xml
I. Seu aplicativo principal, o tema é Theme.AppCompat.Light.DarkActionBar
Para ocultar ActionBar / StatusBar
style.xml
Para ocultar a barra de navegação do sistema
II O tema principal do seu aplicativo é Theme.AppCompat.Light.NoActionBar
Para ocultar ActionBar / StatusBar
style.xml
Para ocultar a barra de navegação do sistema
Semelhante como
Theme.AppCompat.Light.DarkActionBar
.Demo
fonte
obrigado pela resposta @Cristian eu estava recebendo erro
eu resolvi isso usando
fonte
requestWindowFeature(Window.FEATURE_NO_TITLE);
antessuper.onCreate(savedInstanceState);
?show Imersivo total:
saia do modo imersivo completo:
fonte
Eu queria usar meu próprio tema em vez de usar @android: style / Theme.NoTitleBar.Fullscreen. Mas não estava funcionando como algum post aqui mencionou, então fiz alguns ajustes para descobrir isso.
No AndroidManifest.xml:
Em styles.xml:
Nota: no meu caso, eu tive que usar em
name="windowActionBar"
vez dename="android:windowActionBar"
antes que funcionasse corretamente. Então, usei os dois para garantir que, no caso, precise portar para uma nova versão do Android mais tarde.fonte
Aqui está um código de exemplo. Você pode ativar / desativar sinalizadores para ocultar / mostrar partes específicas.
Em seguida, você redefine para o estado padrão :
Você pode chamar as funções acima em
onCreate
:fonte
KOTLIN
Após o documento do google, existe uma maneira fácil:
Documentos Google
fonte
DICA: O uso de getWindow (). SetLayout () pode danificar sua exibição em tela cheia! Observe que a documentação deste método diz:
http://developer.android.com/reference/android/view/Window.html#setLayout%28int,%20int%29
Para meus propósitos, descobri que precisava usar setLayout com parâmetros absolutos para redimensionar minha janela de tela cheia corretamente. Na maioria das vezes, isso funcionava bem. Foi chamado por um evento onConfigurationChanged (). Houve um soluço, no entanto. Se o usuário saísse do aplicativo, alterasse a orientação e entrasse novamente, isso levaria ao disparo do meu código, que incluía setLayout (). Durante essa janela de tempo de reinserção, minha barra de status (que estava oculta pelo manifesto) seria exibida novamente, mas em qualquer outro momento setLayout () não causaria isso! A solução foi adicionar uma chamada setLayout () adicional após a chamada com os valores físicos assim:
A janela foi redimensionada corretamente e a barra de status não reapareceu, independentemente do evento que provocou isso.
fonte
fonte
Por dentro styles.xml ...
Isso funcionou para mim. Espero que ajude você.
fonte
Com o kotlin, é assim que eu faço:
Modo imersivo
O modo imersivo é destinado a aplicativos nos quais o usuário estará interagindo fortemente com a tela. Exemplos são jogos, exibição de imagens em uma galeria ou leitura de conteúdo paginado, como um livro ou slides em uma apresentação. Para isso, basta adicionar estas linhas:
Pegajoso imersivo
No modo imersivo regular, sempre que um usuário passa de uma borda, o sistema cuida de revelar as barras do sistema - seu aplicativo nem perceberá que o gesto ocorreu. Portanto, se o usuário precisar deslizar a partir da borda da tela como parte da experiência principal do aplicativo - como jogar um jogo que exige muita troca ou uso de um aplicativo de desenho - você deve ativar o modo imersivo "aderente" .
Para mais informações: Ative o modo de tela cheia
No caso de você usar o teclado, às vezes acontece que a StatusBar é exibida quando o teclado é exibido. Nesse caso, eu costumo adicionar isso ao meu estilo xml
styles.xml
E também esta linha para o meu manifesto
fonte
Basta colar esse código no
onCreate()
métodofonte
Funcionou para mim.
fonte
fonte
Depois de muito tempo sem sucesso, eu vim com minha própria solução, que é semelhante a outro desenvolvedor. O problema é que a barra de navegação do sistema não estava escondida depois de ligar. Também no meu caso, eu precisava de paisagem, por isso, comente essa linha e tudo isso. Antes de tudo, crie estilo
Este é o meu arquivo de manifesto
Esta é a minha atividade spalsh
}
E esta é minha principal atividade em tela cheia. onSystemUiVisibilityChange Este método é importante, caso contrário, a barra de navegação principal do Android após a chamada permanecerá e não desaparecerá mais. Problema realmente irritante, mas essa função resolve esse problema.
classe pública MainActivity estende AppCompatActivity {
}
Este é o meu layout de tela inicial:
Eu espero que isso te ajude
fonte
https://developer.android.com/training/system-ui/immersive.html
Atividade:
AndroidManifests:
fonte
Crie uma atividade vazia e adicione duas linhas
onCreate
.fonte
Use este método após setContentView em onCreate () e passe o objeto Window por getWindow () .
Este código também funcionará para a tela de entalhe. Para verificar a tela cheia do entalhe, é necessário o Android P, mas se você tiver um telefone com tela de entalhe, vá para configuração -> Configuração de exibição -> proporção de exibição do aplicativo ---> selecione seu aplicativo ---> haverá duas opções seguras exibição e tela cheia, selecione a tela cheia e execute o aplicativo, você pode ver a tela cheia também sem ter o Android Pie
fonte
Para tornar sua atividade em tela cheia, faça o seguinte:
Isso ocultará a barra de ferramentas e a barra de status.
Mas, em alguns casos, convém mostrar a barra de status com um plano de fundo transparente; nesse caso, faça o seguinte:
Outra alternativa é ocultar a barra de ferramentas em vez de
getSupportActionBar().hide()
:<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
Para os amantes do kotlin , por que não usar as funções de extensão:
Para o primeiro caso:
E chame isso antes
setContentView
:Para o segundo:
E chame antes
setContentView
:fonte
No Android 10, nenhum funcionou para mim.
Mas eu que funcionei perfeitamente bem (1ª linha no oncreate):
aproveitar :)
fonte
Para exibir o conteúdo através do entalhe ou da área de recorte. Isso pode ajudar nos documentos:
O principal para mim foi essa linha no estilo de atividade:
Para mim, eu queria mostrar uma imagem no modo imersivo. Quando clico nele, quero que a interface do usuário do sistema (barras de status e navegação) seja exibida.
Aqui está a minha solução:
1- Na Atividade, alguns métodos para mostrar / ocultar a interface do usuário do sistema (barras de status / navegação)
2- Verifique se isso na visualização raiz do seu layout xml
3- Estilo para a tela cheia A atividade dará às barras de status / navegação um fundo semi-transparente quando elas aparecerem:
fonte