2012-08-08 15 views
5

Quiero que mi barra de título quede oculta cuando enciendo el dispositivo en horizontal. He visto la opción XML para ocultar la barra de título y el siguiente ejemplo de hacerlo mediante programación:Ocultando la barra de título/barra de notificación cuando el dispositivo está orientado a horizontal

//Remove title bar 
this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
//Remove notification bar 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

PERO, estoy usando configChanges parámetro para orientation y screenSize, por lo que mi actividad no se vuelve a crear de nuevo cuando se está orientando al paisaje (lo estoy haciendo por algún motivo). Por lo tanto, no puedo usar los métodos anteriores ya que estas llamadas deben realizarse antes del setContentView().

¿Alguna idea? Gracias.

+0

Youtube aplicación lo está haciendo de alguna manera ... y estoy seguro de que no están creando de nuevo la actividad (intente ejecutar el video en el retrato y luego girar a horizontal.) –

+1

No creo que pueda cambiar la decoración después de haber llamado a setcontentview. Le sugiero que inicie la vista en modo de pantalla completa y que la barra de título sea parte de su contenido. de esa manera en el cambio de orientación de la orientación puede ocultarlo. – Shubhayu

+1

lee esta publicación http://stackoverflow.com/questions/4853505/android-how-to-disable-feature-no-title, sugerencia define tu propio título, y puedes ocultarlo y mostrarlo como quieras. – idiottiger

Respuesta

2

primera comprobar su orientación del dispositivo mediante el uso siguiente código

La configuración actual, tal como se utiliza para determinar qué recursos para recuperar etc, se puede obtener de objeto de configuración de Recursos como:

getResources().getConfiguration().orientation 

A continuación, realice la codificación necesaria relacionada con la barra de título y la barra de notificaciones.

+3

¿cuál es la "codificación necesaria ???" esa es en realidad mi pregunta !!!! –

6

Suponiendo que se han definido para la configChangesActivity en el manifiesto a continuación, se puede lograr el problema primordial que onConfigurationChanged método:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      getActionBar().hide(); 
    } else { 
      getActionBar().show(); 
    } 
} 

Usted tendrá que utilizar getSupportActionBar() en lugar de getActionBar() si se utiliza la biblioteca de soporte.

+0

¡En AppCompatActivity no está activado! – IgniteCoders

-1

En su "AndroidManifest.xml", en la etiqueta de la actividad puede especificar "NoTitleBar" en el tema de la propiedad por lo que siempre va a ocultar el título:

<activity 
    android:name="com.my_package.MyActivity" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:configChanges="navigation|orientation|screenLayout|layoutDirection"> 
12

fue en busca de una respuesta, terminó aquí, poner las piezas juntas y aquí están:

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
else { 
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
+0

Gracias, trabajo para mí – Tony

+0

funcionó para mí 2 –

Cuestiones relacionadas