web-dev-qa-db-fra.com

Android - Rendre l'activité en plein écran avec la barre d'état en haut

Je souhaite rendre mon activité plein écran avec la barre d'état en haut, comme ci-dessous:

 enter image description here

J'ai utilisé ce code dans manifest à l'intérieur de la balise activity:

'Android:theme="@style/Theme.AppCompat.Light.NoActionBar"'

Mais ma vue ne part pas de la barre d'état et ressemble à ceci:

 enter image description here

Comment puis-je faire ma activity ressembler à la première?

22
Utshaw

Je sais que le gars qui pose la question a peut-être trouvé sa propre solution, mais pour les personnes qui recherchent encore une solution, il s'agit d'une solution très simple, mais une chose a une limitation jusqu'à KitKat donc une condition est ajoutée.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KitKat) {

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                      WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
24
Vishwajit Palankar

Ajoutez-les à votre Thème de l'application de base in styles.xml

<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>

Et ajoutez l'attribut suivant à votre mise en page parent:

Android:fitsSystemWindows="true"

J'espère que cela t'aides.

19
tahsinRupam

Si vous ne voulez pas que votre "navigation translucide" soit transparente, voici le code pour juste rendre transparente la barre d'état

Dans votre thème:

    <item name="Android:statusBarColor">@Android:color/transparent</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowTranslucentStatus">true</item>

Dans votre activité surCreate:

Window window = getWindow();
WindowManager.LayoutParams winParams = window.getAttributes();
winParams.flags &= ~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
window.setAttributes(winParams);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
5
Pablo Cegarra

vous pouvez utiliser ce code après onCreate

   setTheme(Android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        if (getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }

votre activité sera complète avec la barre d'état :)

1
Mostafa Pirhayati

@ tahsinRupam answer est correct et testé sur la version post KitKat.

<item name="Android:windowTranslucentStatus">true</item>
<item name="Android:windowTranslucentNavigation">true</item>

Si vous souhaitez l'utiliser uniquement pour une activité donnée, créez un style et attachez-le à votre style de manifeste comme ceci.

<activity
    Android:name=".MainActivity"
    Android:screenOrientation="portrait"
    Android:theme="@style/Activity.Fullscreen.Theme" />

<style name="Activity.Fullscreen.Theme" parent="MyMaterialTheme.Base">  
    <item name="Android:windowTranslucentStatus">true</item>
    <item name="Android:windowTranslucentNavigation">true</item>
</style>

Bravo à l'origine @ tahsinRupam  

Codages heureux à la vôtre!

0
ralphgabb

Essayez comme ça

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

J'espère que celui-ci aidera

0
Sumaniya Alabha