titulo studio quitar que pantalla modo inmersivo completa como barra bar app aplicación actionbar android fullscreen title

que - quitar action bar android studio



¿Ocultar el título en un modo de pantalla completa? (6)

Agregar android:theme="@android:style/Theme.NoTitleBar.Fullscreen" a la etiqueta de la aplicación en el archivo de manifiesto hará que cada actividad sea a pantalla completa.

¿Hay alguna manera de ocultar el título de la ventana para que no se muestre en modo de pantalla completa (

getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN)

) pero luego aparecerá

getWindow().clearFlags(LayoutParams.FLAG_FULLSCREEN)

?

requestWindowFeature(Window.FEATURE_NO_TITLE)

no es una opción, por supuesto, ya que esto no permitirá recuperarlo.


En Android 3+ se puede lograr fácilmente llamando a getActionBar().hide() y getActionBar().show() para mostrar y ocultar, respectivamente, la ActionBar estándar

En Android 1,2, la mejor solución (supongo) es implementar una vista personalizada para su "barra de título" y ocultarla bajo demanda (por supuesto, llamar a requestWindowFeature(Window.FEATURE_NO_TITLE); al principio).


La forma en que manejo esto en mis juegos de Android es llamar a la siguiente línea en onCreate () de mi Actividad

requestWindowFeature(Window.FEATURE_NO_TITLE);

Luego puedo activar y desactivar la capacidad de pantalla completa usando el siguiente código en mi clase de actividad (generalmente llamado desde una opción de menú) (la variable m_contentView es la vista desde findViewById () usando el id que usaste al llamar a setContentView () en tu en crear)

private void updateFullscreenStatus(boolean bUseFullscreen) { if(bUseFullscreen) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } m_contentView.requestLayout(); }

Utilizo esta técnica en todos mis juegos sin problema.

Por qué dices

requestWindowFeature (Window.FEATURE_NO_TITLE); no es una opción por supuesto

?

::EDITAR::

Bueno, si intenta mostrarlo y ocultarlo dinámicamente durante la vida útil de la actividad, no estoy seguro si puede hacerlo con el Título de ventana oficial debido a la nota que se ha mencionado sobre las funciones de la ventana que deben establecerse antes de setContentView () se llama ( link )

Una cosa que podrías hacer es implementar tu propia barra de título y mostrar y ocultar dinámicamente eso ... Junté este ejemplo que debería establecerte en el camino correcto

Aquí está el archivo de diseño

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:fadingEdgeLength="0sp" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTitleBarLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/myTitleBarTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/app_name" android:paddingTop="4dip" android:paddingBottom="4dip" android:paddingLeft="6dip" android:textStyle="bold" android:shadowColor="#BB000000" android:shadowRadius="3.0" android:shadowDy=".25" /> <View android:layout_width="fill_parent" android:layout_height="1dip" android:background="#CCEEEEEE" android:padding="10dip" /> </LinearLayout> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" > <!-- Insert your regular layout stuff here --> <Button android:id="@+id/toggle_title_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Toggle Title" /> </ScrollView> </LinearLayout>

Y aquí está el código para la actividad principal que le permitirá activar y desactivar nuestra barra de título personalizada

package com.snctln.test.HelloGridView; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class HelloGridView extends Activity { public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv = (TextView)this.findViewById(R.id.myTitleBarTextView); tv.setBackgroundColor(0xFF848284); tv.setTextColor(0xFFFFFFFF); Button toggleTitleButton = (Button)this.findViewById(R.id.toggle_title_button); toggleTitleButton.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { LinearLayout ll = (LinearLayout)findViewById(R.id.myTitleBarLayout); if(ll.getVisibility() == View.GONE) { ll.setVisibility(View.VISIBLE); } else { ll.setVisibility(View.GONE); } } }); } }

No se ve perfecto, pero siempre puedes jugar con el diseño un poco más para hacer eso.

texto alternativo http://i39.tinypic.com/120sfp1.png

Mi otro pensamiento es si solo quieres ocultar todo para mostrar una barra de progreso, ¿por qué no usar ProgressDialog ?

Esta clase es bastante fácil de usar ...

progressDlg = ProgressDialog.show(context, getString(R.string.progress_dialog_title_prepare), getString(R.string.progress_dialog_body_prepare)); // do long running operation if(operationFailed) { progressDlg.cancel(); } else { progressDlg.dismiss(); }


eso no es posible según los documentos y el grupo de google android-developers. para implementar eso, necesita agregar un elemento de diseño de "barra de título" con su barra de texto y progreso y ocultar / mostrar cuando lo necesite. en este momento, no hay otra forma de evitarlo, ya que el control de la barra de título solo se puede hacer antes de la llamada setContentView y no se cambia después.


Para desactivar el título de su aplicación (es el nombre de la aplicación)

requestWindowFeature(Window.FEATURE_NO_TITLE)

Para deshabilitar la barra de notificaciones en la parte superior (por lo que una solicitud al administrador de la aplicación Android para permitir pantalla completa)

getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN)

Espero que esto ayude a cualquiera que quiera saber la diferencia.


if(useFullscreen) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); } else { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); }

esto funcionó para mí .. en el método onResume