wake-up-neo.net

Android - Erstellen von Aktivitäten im Vollbildmodus mit Statusleiste darüber

Ich möchte meine Aktivitäten im Vollbildmodus mit der Statusleiste wie folgt anzeigen:

 enter image description here

Ich habe diesen Code in manifest im activity-Tag verwendet:

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

Meine Ansicht beginnt jedoch nicht von der Statusleiste aus und sieht folgendermaßen aus:

 enter image description here

Wie kann ich meine activity wie die erste aussehen lassen?

22
Utshaw

Ich weiß, dass der Kerl, der die Frage stellt, möglicherweise seine eigene Lösung gefunden hat, aber für die Leute, die immer noch nach einer Lösung suchen, ist dies eine sehr einfache Lösung, aber eine Sache hat eine Einschränkung, bis KitKat eine Bedingung hinzugefügt wird

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

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

Fügen Sie diese zu Ihrem Base Application Theme in styles.xml hinzu.

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

Fügen Sie Ihrem übergeordneten Layout das folgende Attribut hinzu:

Android:fitsSystemWindows="true"

Hoffe das hilft.

19
tahsinRupam

Wenn Sie Ihre "transluzente Navigation" nicht transparent machen möchten, geben Sie hier den Code für nur die Statusleiste transparent

In deinem Thema:

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

In Ihrer Aktivität onCreate:

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

sie können diesen Code nach onCreate verwenden

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

ihre Aktivität wird mit Statusleiste angezeigt. :)

1

@ tahsinRupam answer ist korrekt und wurde in der nach KitKat-Version getestet.

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

Wenn Sie es nur für eine bestimmte Aktivität verwenden möchten, erstellen Sie einen Stil und hängen Sie ihn wie folgt an Ihren Manifeststil an.

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

Daumen hoch auf original @ tahsinRupam  

Glückliche Kodierungen Prost!

0
ralphgabb

Versuchen Sie es so

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

Hoffe, das wird helfen

0
Sumaniya Alabha