He desarrollado una aplicación de demostración sencilla con una pantalla de presentación, un mapa y algunas pantallas normales.
Tengo una barra de acción en la parte superior que contiene un logotipo. Todo se ve bien en mi teléfono (Galaxy s1 I9000 V2.3) pero cuando lo pruebo en Galaxy s2 v4, la barra de acción también aparece en la pantalla de inicio y en la pantalla del mapa.
La actividad de spalsh y map ni siquiera se heredan de ActionBarActivity, entonces, ¿cómo es posible y cómo puedo hacer que desaparezca?
Manifiesto:
<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>
Definición de MapActivity (es larga, así que incluí solo la definición):
public class MapActivity extends FragmentActivity implements LocationListener
Actividad de bienvenida:
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
fuente
fuente
getActionBar
porque la actividad no se hereda deActionBarActivity
<item name="android:windowActionBar">false</item>
¿no lo escondería en todas las pantallas?Mientras pregunta cómo esconderse en una determinada actividad , esto es lo que necesita:
fuente
1. Vaya a su
manifest.xml
archivo.2.
Find
elactivity tag
para el que desea ocultar su ActionBar y luegoadd
,fuente
Si desea obtener la pantalla completa sin actionBar y Title.
Agréguelo en style.xml
y use el estilo en la actividad de manifest.xml.
fuente
El
ActionBar
generalmente existe aFragments
lo largo de loActivity
que puede ocultarlo.y desde el
Fragment
puedes hacerlofuente
getSupportActionBar().hide();
en ActionBarActivitySi estuviera utilizando Theme.AppCompat.Light, un mejor equivalente sería Theme.AppCompat.Light.NoActionBar.
Descubrí que el uso de Theme.AppCompat.NoTitleBar hacía que el texto de mi botón fuera invisible, así que estoy usando Theme.AppCompat.Light.NoActionBar.
fuente
¡Esto funciona para mí! Pon esto en tu actividad en manifiestos
También puede crear su tema personalizado en styles.xml como este:
Espero que esto ayude.
fuente
Puede utilizar el modo de perfil bajo Consulte aquí
Simplemente busque
SYSTEM_UI_FLAG_LOW_PROFILE
que también atenúe los botones de navegación si están presentes en la pantalla.fuente
Las respuestas anteriores ayudarían con ActionBar. Para agregarlo, use el siguiente código en caso de que esté usando la pantalla de bienvenida: Use esto antes de configurar la vista de contenido:
Solo para aclarar, así es como se hace:
Esto convertiría su pantalla en una pantalla completa, es decir, eliminaría la barra superior donde ve la barra de red, etc.
fuente
Aplique lo siguiente en su tema para la actividad en AndroidManifest.xml:
Luego aplique lo siguiente en su estilo en style.xml
fuente
// Ocultar la barra de acción en la parte superior
// Agrega este código en el archivo java
fuente
Esto funciona en API 27
En styles.xml reemplace el código por lo siguiente ....
Luego, en los archivos (por ejemplo, activity_list.xml) en los que desea tener una barra de herramientas, coloque el siguiente código.
Si tiene problemas, cambie al diseño lineal (porque para eso se prueba este código)
fuente
Desde aqui :
Entonces, una opción es deshabilitar ActionBar por completo (en el archivo manifest.xml de la aplicación) y luego agregar la barra de herramientas en cada página que necesite una ActionBar.
(siga el enlace anterior para obtener una explicación paso a paso)
fuente
Reemplazar AndroidManifest.xml
a
fuente
Agregue un nuevo estilo en su style.xml
y luego agregue la siguiente línea en su manifiesto
fuente
Compruebe el atributo de relleno si el problema persiste después de cambiar el tema.
Problema de relleno al crear un espacio en blanco encima de la ventana del fragmento / ventana de la aplicación
Una vez que elimina el relleno, el valor superior se elimina automáticamente el espacio en blanco.
fuente