Desenvolvi um aplicativo de demonstração simples com uma tela inicial, um mapa e algumas telas normais.
Tenho uma barra de ação na parte superior que contém um logotipo. Parece tudo bem no meu telefone (Galaxy s1 I9000 V2.3), mas quando o testo no Galaxy s2 v4, a barra de ação aparece também na tela inicial e na tela do mapa.
O spalsh e a atividade do mapa nem mesmo herdam de ActionBarActivity, então como isso é possível e como posso fazer com que desapareça?
Manifesto:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.AppCompat.Light" >
<activity
android:name=".HomeActivity"
android:icon="@drawable/android_logo"
android:label=""
android:logo="@drawable/android_logo" >
<!--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
<activity
android:name=".MapActivity"
android:label="" >
</activity>
<activity
android:name=".PackageActivity"
android:icon="@drawable/android_logo"
android:label=""
android:logo="@drawable/android_logo" >
</activity>
<activity
android:name=".SplashActivity"
android:label="" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Definição de MapActivity (é longa, então incluí apenas a definição):
public class MapActivity extends FragmentActivity implements LocationListener
Atividade inicial:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
public class SplashActivity extends Activity{
private static final long SPLASH_DISPLAY_LENGTH = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGTH);
}
}
java
android
android-actionbar
Tomer
fonte
fonte
getActionBar
porque a atividade não é herdada deActionBarActivity
<item name="android:windowActionBar">false</item>
isso não esconderia em todas as telas?Como você está perguntando sobre como se esconder em uma determinada atividade , isto é o que você precisa:
fonte
1. Vá para o seu
manifest.xml
arquivo.2.
Find
oactivity tag
para o qual você deseja ocultar sua ActionBar eadd
, em seguida ,fonte
Se você deseja obter a tela inteira sem actionBar e título.
Adicione-o em style.xml
e use o estilo na atividade de manifest.xml.
fonte
O
ActionBar
geralmente existe,Fragments
entãoActivity
você pode escondê-lo doe
Fragment
você pode fazer issofonte
getSupportActionBar().hide();
in ActionBarActivitySe você estivesse usando Theme.AppCompat.Light, um equivalente melhor seria Theme.AppCompat.Light.NoActionBar.
Descobri que usar Theme.AppCompat.NoTitleBar fez com que o texto do meu botão ficasse invisível, então estou usando Theme.AppCompat.Light.NoActionBar.
fonte
Isso funciona para mim! Coloque isso em sua atividade em manifestos
Você também pode fazer seu tema personalizado em styles.xml como este:
Espero essa ajuda.
fonte
Você pode usar o modo Low Profile Veja aqui
Basta pesquisar
SYSTEM_UI_FLAG_LOW_PROFILE
isso também escurece os botões de navegação se eles estiverem presentes na tela.fonte
As respostas acima ajudariam com o ActionBar. Para adicionar a ele, use o seguinte código, caso esteja usando a tela inicial: Use antes de definir a visualização do conteúdo:
Só para esclarecer, veja como você faz isso:
Isso tornaria sua tela uma tela inteira, ou seja, remover a barra superior onde você vê a barra de rede, etc.
fonte
Aplique o seguinte em seu tema para a atividade em AndroidManifest.xml:
Em seguida, aplique o seguinte em seu estilo em style.xml
fonte
// Esconda a ActionBar no topo
// Adicione este código ao arquivo java
fonte
Isso funciona na API 27
No styles.xml, substitua o código pelo seguinte ....
Em seguida, nos arquivos (por exemplo, activity_list.xml) em que você deseja ter uma barra de ferramentas, coloque o seguinte código.
Se você tiver problemas, mude para o layout linear (porque é nisso que este código foi testado)
fonte
A partir daqui :
Portanto, uma opção é desabilitar o ActionBar completamente (no arquivo manifest.xml do aplicativo) e, em seguida, adicionar o Toolbar em cada página que precisa de um ActionBar.
(siga o link acima para uma explicação passo a passo)
fonte
Substitua AndroidManifest.xml
para
fonte
Adicione um novo estilo em seu style.xml
e adicione a seguinte linha em seu manifesto
fonte
Verifique o atributo de preenchimento se o problema persistir após alterar o tema.
Problema de preenchimento criando um espaço em branco na parte superior da janela do fragmento / janela do aplicativo
Depois de remover o preenchimento - valor superior automaticamente, o espaço em branco é removido.
fonte