studio personalizar full bar apptheme app android android-actionbar android-theme

android - personalizar - Tema de pantalla completa para AppCompat



hide navigation bar android studio (15)

Me gustaría saber cómo puedo aplicar el tema de pantalla completa (sin barra de título + sin barra de acción) a una actividad. Estoy usando la biblioteca AppCompat del paquete de soporte v7.

He intentado aplicar android:theme="@android:style/Theme.NoTitleBar.Fullscreen" a mi actividad específica, pero se bloqueó. Creo que es porque el tema de mi aplicación es así.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

También he intentado esto

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

que solo oculta la barra de título pero no la barra de acción. Mi solución actual es que oculta la barra de acción con

getSupportActionBar().hide();


Basándome en la respuesta de @nebyan, encontré que la barra de acción aún no se oculta.

El siguiente código funciona para mí:

<style name="AppFullScreenTheme" parent="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>

y, por supuesto, no se olvidó de editar su archivo AndroidManifest .

<activity android:name="YOUR_ACTIVITY_NAME" android:theme="@style/AppFullScreenTheme" />


Cuando use Theme.AppCompat en su aplicación, puede usar FullScreenTheme agregando el siguiente código a los estilos.

<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>

y también mencionar en su archivo manifiesto.

<activity android:name=".activities.FullViewActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" />


Debe ser parent = "@ style / Theme.AppCompat.Light.NoActionBar"

<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>


Este tema solo funciona después de API 21 (incluido). Y hacer que tanto la Barra de estado como la Barra de navegación sean transparentes.

<style name="TransparentAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowContentOverlay">@null</item> </style>


Para eliminar la barra de título en AppCompat:

@Override protected void onCreate(Bundle savedInstanceState) { supportRequestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); }


Para ocultar la barra de estado y la barra de acción y hacer que su actividad sea a pantalla completa, use el siguiente código en el onResume() o onWindowFocusChanged() su actividad:

@Override protected void onResume() { super.onResume(); View decorView = getWindow().getDecorView(); decorView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN); }

Puedes encontrar más información en los siguientes enlaces:

Nota: al usar las soluciones xml proporcionadas en este hilo, solo pude ocultar la barra de estado pero no la barra de navegación.


Puedes seguir el siguiente paso: -

AndoridMenifest.xml

<activity android:name=".ui.FullImageActivity" android:label="@string/title_activity_main" android:screenOrientation="landscape" android:theme="@style/DialogTheme"> </activity>

Style.xml

<style name="DialogTheme" parent="android:Theme.Dialog"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">fill_parent</item> <!-- No backgrounds, titles or window float --> <item name="android:windowNoTitle">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowIsFloating">false</item> </style>

FullImageActivity.java

@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); setContentView(R.layout.image_view); }

Espero que te ayude ... Gracias!


Simplemente en este chicos a tu estilo:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> </style>



Surgen problemas entre las versiones anteriores y posteriores de Android 4.0 (nivel de API 14).

desde aquí https://developer.android.com/training/system-ui/status.html Creé mi propia solución ...

@SuppressLint("NewApi") @Override protected void onResume() { super.onResume(); if (Build.VERSION.SDK_INT < 16) { // Hide the status bar getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // Hide the action bar getSupportActionBar().hide(); } else { // Hide the status bar getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); / Hide the action bar getActionBar().hide(); } }

Escribo este código en el método onResume () porque si sales de tu aplicación y luego la vuelves a abrir, ¡la barra de acción permanece activa! (y así esto soluciona el problema)

Espero que haya sido de ayuda ;)


sólo esta ?

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen"> <item name="android:windowFullscreen">true</item> </style>


<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat"> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">true</item> </style>

Usando el xml anterior en style.xml, podrá ocultar el título y la barra de acción.


<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item>


protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //to remove "information bar" above the action bar getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //to remove the action bar (title bar) getSupportActionBar().hide(); }


requestWindowFeature(Window.FEATURE_NO_TITLE);