wake-up-neo.com

Vollbildaktivität in Android?

Wie erstelle ich eine Aktivität im Vollbildmodus? Ich meine ohne Benachrichtigungsleiste. Irgendwelche Ideen?

509
Praveen

Sie können es programmgesteuert machen:

public class ActivityName extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // remove title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }
}

Oder Sie können es über Ihre AndroidManifest.xml-Datei tun:

<activity Android:name=".ActivityName"
    Android:label="@string/app_name"
    Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"/>

Bearbeiten:

Wenn Sie AppCompatActivity verwenden, müssen Sie ein neues Design hinzufügen

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

und dann benutzen Sie es.

<activity Android:name=".ActivityName"
    Android:label="@string/app_name"
    Android:theme="@style/Theme.AppCompat.Light.NoActionBar.Fullscreen"/>

Dank an https://stackoverflow.com/a/25365193/1646479

907
Cristian

Es gibt eine Technik namens Immersiver Vollbildmodus verfügbar in KitKat .Immersive Full-Screen Mode Demo

Beispiel

116
Dmide

Wenn Sie das Design @Android:style/Theme.NoTitleBar.Fullscreen nicht verwenden möchten, weil Sie bereits ein eigenes Design verwenden, können Sie Android:windowFullscreen verwenden.

In AndroidManifest.xml:

<activity
  Android:name=".ui.activity.MyActivity"
  Android:theme="@style/MyTheme">
</activity>

In styles.xml:

<style name="MyTheme"  parent="your parent theme">
  <item name="Android:windowNoTitle">true</item>
  <item name="Android:windowFullscreen">true</item> 
</style>
71
Ariel Cabib

In AndroidManifest.xml file:

<activity
    Android:name=".Launch"
    Android:label="@string/app_name"
    Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" > <!-- This line is important -->

    <intent-filter>
        <action Android:name="Android.intent.action.MAIN" />
        <category Android:name="Android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>  

Oder in Java Code:

protected void onCreate(Bundle savedInstanceState){
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

Wenn Sie AppCompat und ActionBarActivity verwenden, verwenden Sie diese Option

getSupportActionBar().hide();

27
Bala Vishnu

Sei vorsichtig mit

requestWindowFeature(Window.FEATURE_NO_TITLE);

Wenn Sie eine Methode verwenden, um die Aktionsleiste wie folgt festzulegen:

getSupportActionBar().setHomeButtonEnabled(true);

Es wird eine Nullzeigerausnahme verursacht.

22
jiahao

Versuchen Sie dies mit appcompat von style.xml. Es kann mit allen Plattformen unterstützt werden.

<!-- Application theme. -->
<style name="AppTheme.FullScreen" parent="AppTheme">
    <item name="Android:windowFullscreen">true</item>
</style>


<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" />
20
Rohit Suthar

Die Verwendung von Android Studio (derzeitige Version 2.2.2) ist sehr einfach, um eine Vollbildaktivität hinzuzufügen. 

Siehe die Schritte:

  1. Klicken Sie mit der rechten Maustaste auf Ihr Java-Hauptpaket. Wählen Sie "Neu"> Wählen Sie "Aktivität"> klicken Sie dann auf "Vollbildaktivität".

 Step one

  1. Passen Sie die Aktivität an ("Aktivitätsname", "Layoutname" usw.) und klicken Sie auf "Fertig stellen".

 Step two

Erledigt! 

Jetzt haben Sie eine Vollbild-Aktivität leicht gemacht (sehen Sie die Java-Klasse und das Aktivitätslayout, um zu erfahren, wie die Dinge funktionieren)!

12

Für diejenigen, die AppCompact ... Style.xml verwenden

 <style name="Xlogo" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowFullscreen">true</item>

Dann geben Sie den Namen in Ihr Manifest ein ...

7
X-Black...

danke für die Antwort @Cristian Ich habe Fehler bekommen 

Android.util.AndroidRuntimeException: requestFeature () muss aufgerufen werden bevor Sie Inhalte hinzufügen

ich habe das mit gelöst

@Override
protected void onCreate(Bundle savedInstanceState) {

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    super.onCreate(savedInstanceState);

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

    setContentView(R.layout.activity_login);

    -----
    -----
}
6
Bikesh M Annur

Zuerst müssen Sie Ihr App-Design mit "NoActionBar" wie unten festgelegt einstellen

<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar" />

Fügen Sie diese Zeilen dann Ihrer Vollbildaktivität hinzu.

public class MainActiviy extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                  WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }
}

Es wird die Aktionsleiste/Symbolleiste sowie die Statusleiste in Ihrer Vollbildaktivität ausblenden

6
Rajesh Peram

AndroidManifest.xml

<activity ...
          Android:theme="@style/FullScreenTheme"
    >
</activity>

I. Ihr Hauptanwendungsdesign ist Theme.AppCompat.Light.DarkActionBar

Zum Ausblenden von ActionBar/StatusBar
style.xml

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

<style name="FullScreenTheme" parent="AppTheme">
    <!--this property will help hide ActionBar-->
    <item name="windowNoTitle">true</item>
    <!--currently, I don't know why we need this property since use windowNoTitle only already help hide actionbar. I use it because it is used inside Theme.AppCompat.Light.NoActionBar (you can check Theme.AppCompat.Light.NoActionBar code). I think there are some missing case that I don't know-->
    <item name="windowActionBar">false</item>
    <!--this property is used for hiding StatusBar-->
    <item name="Android:windowFullscreen">true</item>
</style>

Zum Ausblenden der Systemnavigationsleiste

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        setContentView(R.layout.activity_main)
        ...
    }
 }

II. Ihr Hauptanwendungsdesign ist Theme.AppCompat.Light.NoActionBar

Zum Ausblenden von ActionBar/StatusBar
style.xml

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

<style name="FullScreenTheme" parent="AppTheme">
    <!--don't need any config for hide ActionBar because our apptheme is NoActionBar-->
    <!--this property is use for hide StatusBar-->
    <item name="Android:windowFullscreen">true</item> // 
</style>

Zum Ausblenden der Systemnavigationsleiste

Ähnlich wie Theme.AppCompat.Light.DarkActionBar

Demo
Ich hoffe es hilft

5
Linh

Ich wollte mein eigenes Theme anstelle von @Android: style/Theme.NoTitleBar.Fullscreen verwenden. Aber es hat nicht funktioniert, wie es in einem Post hier erwähnt wurde, also habe ich ein paar Änderungen vorgenommen, um es herauszufinden.

In AndroidManifest.xml:

<activity
    Android:name=".ui.activity.MyActivity"
    Android:theme="@style/MyTheme">
</activity>

In styles.xml:

<style name="MyTheme">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
</style>

Hinweis: In meinem Fall musste ich name="windowActionBar" anstelle von name="Android:windowActionBar" verwenden, bevor es richtig funktioniert hat. Also habe ich nur beides verwendet, um sicherzustellen, dass ich später auf eine neue Android-Version portieren muss.

2
Chef Pharaoh

TIPP: Mit getWindow (). SetLayout () kann Ihre Vollbilddarstellung vermasseln! Beachten Sie die Dokumentation für diese Methode:

Legen Sie die Parameter für die Breite und Höhe des Fensters fest ... Sie können sie in einen absoluten Wert ändern, um ein Fenster zu erstellen, das nicht im Vollbildmodus ist.

http://developer.Android.com/reference/Android/view/Window.html#setLayout%28int,%20int%29

Für meine Zwecke habe ich festgestellt, dass ich setLayout mit absoluten Parametern verwenden musste, um die Größe meines Vollbildfensters korrekt zu ändern. Meistens hat das gut funktioniert. Es wurde von einem onConfigurationChanged () - Ereignis aufgerufen. Es gab jedoch einen Schluckauf. Wenn der Benutzer die App beendet, die Ausrichtung geändert und erneut eingegeben hat, würde dies dazu führen, dass mein Code ausgelöst wird, der setLayout () enthielt. Während dieses Zeitfenster für den erneuten Einstieg wird meine Statusleiste (die durch das Manifest ausgeblendet wurde) wieder angezeigt, aber zu jeder anderen Zeit würde setLayout () dies nicht verursachen! Die Lösung bestand darin, nach dem Aufruf mit den harten Werten einen zusätzlichen Aufruf von setLayout () hinzuzufügen:

       public static void setSize( final int width, final int height ){
//DO SOME OTHER STUFF...
            instance_.getWindow().setLayout( width, height );
            // Prevent status bar re-appearance
            Handler delay = new Handler();
            delay.postDelayed( new Runnable(){ public void run() {
                instance_.getWindow().setLayout(
                    WindowManager.LayoutParams.FILL_PARENT,
                    WindowManager.LayoutParams.FILL_PARENT );
            }}, FILL_PARENT_ON_RESIZE_DELAY_MILLIS );
        }

Das Fenster wurde dann in der korrekten Größe angepasst und die Statusleiste wurde nicht erneut angezeigt, unabhängig von dem Ereignis, das dieses Ereignis ausgelöst hat.

1
BuvinJ

Hier ist ein Beispielcode. Sie können Flaggen ein- und ausschalten, um bestimmte Teile ein- oder auszublenden. 

 enter image description here

public static void hideSystemUI(Activity activity) {
    View decorView = activity.getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    //| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    //| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

Dann setzen Sie den Status default zurück:

 enter image description here

public static void showSystemUI(Activity activity) {
    View decorView = activity.getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

Sie können die oben genannten Funktionen von Ihrer onCreate aus aufrufen:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.course_activity);
    UiUtils.hideSystemUI(this);
}
1
arsent
 @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    adjustFullScreen(newConfig);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        adjustFullScreen(getResources().getConfiguration());
    }
}
private void adjustFullScreen(Configuration config) {
    final View decorView = getWindow().getDecorView();
    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        decorView.setSystemUiVisibility(
                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
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    } else {
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    }
}
1
Tarun konda

In styles.xml ...

<!-- No action bar -->
<style name="NoActonBar" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Theme customization. -->
    <item name="colorPrimary">#000</item>
    <item name="colorPrimaryDark">#444</item>
    <item name="colorAccent">#999</item>
    <item name="Android:windowFullscreen">true</item>
</style>

Das hat bei mir funktioniert. Ich hoffe es hilft dir.

1
Anuj Sain

Mit Kotlin habe ich das so gemacht:

class LoginActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)
        window.decorView.systemUiVisibility =
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
                View.SYSTEM_UI_FLAG_FULLSCREEN

    }
}

Immersivmodus

Der Immersive-Modus ist für Apps gedacht, bei denen der Benutzer stark mit dem Bildschirm interagiert. Beispiele sind Spiele, das Anzeigen von Bildern in einer Galerie oder das Lesen von paginiertem Inhalt, wie ein Buch oder Folien in einer Präsentation. Fügen Sie dazu einfach folgende Zeilen hinzu:

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

Sticky immersive

Im normalen Immersive-Modus sorgt das System für die Anzeige der Systemleisten, wenn ein Benutzer von einem Edge streicht. Die App erkennt nicht einmal, dass die Geste aufgetreten ist. Wenn der Benutzer als Teil des primären App-Erlebnisses tatsächlich vom Rand des Bildschirms wischen muss, beispielsweise wenn Sie ein Spiel spielen, für das viel Wischen erforderlich ist oder eine Zeichen-App verwendet, sollten Sie stattdessen den "klebrigen" Eintauchmodus aktivieren .

View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

Weitere Informationen: Vollbildmodus aktivieren

Wenn Sie die Tastatur verwenden, wird in der Statusleiste manchmal angezeigt, wenn die Tastatur angezeigt wird. In diesem Fall füge ich dies normalerweise zu meiner Style-XML hinzu

styles.xml

<style name="FullScreen" parent="AppTheme">
    <item name="Android:windowFullscreen">true</item>
</style>

Und auch diese Linie zu meinem Manifest

<activity
        Android:name=".ui.login.LoginActivity"
        Android:label="@string/title_activity_login"
        Android:theme="@style/FullScreen">
1
Jorge Casariego

zeige Full Immersive:

private void askForFullScreen()
    {
        getActivity().getWindow().getDecorView().setSystemUiVisibility(
                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 // hide nav bar
                        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                        | View.SYSTEM_UI_FLAG_IMMERSIVE);
    }

bewegen Sie sich aus dem vollen immersiven Modus:

 private void moveOutOfFullScreen() {
        getActivity().getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    }
1
Gal Rom

Erstellen Sie eine leere Aktivität und fügen Sie in onCreate zwei Zeilen hinzu.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // full screen activity
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getSupportActionBar().hide();

        setContentView(R.layout.activity_main);
    }
    ...
}
0
wannik

KOTLIN

Nach dem Google Doc gibt es einen einfachen Weg:

override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) hideSystemUI() }


private fun hideSystemUI() {
// Enables regular immersive mode.
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
        // Set the content to appear under the system bars so that the
        // content doesn't resize when the system bars hide and show.
        or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        // Hide the nav bar and status bar
        or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        or View.SYSTEM_UI_FLAG_FULLSCREEN)      }


// Shows the system bars by removing all the flags
// except for the ones that make the content appear under the system bars.
private fun showSystemUI() {
window.decorView.systemUiVisibility = 
(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)       }

Google Dokumente

0
Álvaro Agüero

https://developer.Android.com/training/system-ui/immersive.html

Tätigkeit:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.setSystemUiVisibility(
                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
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }
}

AndroidManifests:

 <activity Android:name=".LoginActivity"
            Android:configChanges="orientation|keyboardHidden|screenSize"
            Android:label="@string/title_activity_login"
            Android:theme="@style/FullscreenTheme"
            ></activity>
0
Dheerendra Mitm
 protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_splash_screen);
    getSupportActionBar().hide();

}
0
saigopi

Es hat für mich funktioniert.

if (Build.VERSION.SDK_INT < 16) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    } else {
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
    }
0
Singh

Fügen Sie diesen Code einfach in die onCreate()-Methode ein

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
0
Ahsan

Verwenden Sie diese Methode nach setContentView in onCreate () und übergeben Sie das Window - Objekt an getWindow () .

    public void makeActivityFullScreen(Window window){
    View decorView = window.getDecorView();
    //        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
       window.getAttributes().layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
    }
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    );
}

Dieser Code funktioniert auch für Kerbbildschirme. Um den Notch-Vollbildmodus zu überprüfen, benötigen Sie Android P, aber wenn Sie ein Notch-Display-Telefon haben, gehen Sie zu Einstellung -> Display-Einstellung -> Anzeigeverhältnis der App ---> wählen Sie Ihre App ---> es wird zwei Optionen sicher sind Anzeige und Vollbild, bitte wählen Sie den Vollbildmodus und starten Sie die App, Sie können den Vollbildmodus auch in Kerbe sehen ohne Android Pie

0
Prakash Sharma

Nach langer Zeit ohne Erfolg kam ich mit meiner eigenen Lösung, die mit einem anderen Entwickler ähnlich ist. Wenn jemand sie braucht, ist es das. Mein Problem war, dass sich die Systemnavigationsleiste nach dem Aufruf nicht versteckte. Auch in meinem Fall brauchte ich Landschaft, also nur für den Fall, dass diese Zeile und das alles kommentiert wird. Erstellen Sie zunächst Stil

    <style name="FullscreenTheme" parent="AppTheme">
    <item name="Android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="Android:windowActionBarOverlay">true</item>
    <item name="Android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

Dies ist meine Manifestdatei

<activity
        Android:name=".Splash"
        Android:screenOrientation="landscape"
        Android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize"
        Android:label="@string/app_name"
        Android:theme="@style/SplashTheme">

        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        Android:name=".MainActivity"
        Android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize"
        Android:screenOrientation="landscape"
        Android:label="@string/app_name"
        Android:theme="@style/FullscreenTheme">
    </activity>

Dies ist meine spalsh-Aktivität

public class Splash extends Activity {
/** Duration of wait **/
private final int SPLASH_DISPLAY_LENGTH = 2000;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.splash_creen);

    /* New Handler to start the Menu-Activity
     * and close this Splash-Screen after some seconds.*/
    new Handler().postDelayed(new Runnable(){
        @Override
        public void run() {
            /* Create an Intent that will start the Menu-Activity. */
            Intent mainIntent = new Intent(Splash.this,MainActivity.class);
            Splash.this.startActivity(mainIntent);
            Splash.this.finish();
        }
    }, SPLASH_DISPLAY_LENGTH);
}

}

Und dies ist meine Hauptaktivität im Vollbildmodus. onSystemUiVisibilityDiese Methode wird beendet. Andernfalls bleibt die Android-Hauptnavigationsleiste nach dem Anruf stehen und verschwindet nicht mehr. Wirklich irritierendes Problem, aber diese Funktion löst dieses Problem.

die öffentliche Klasse MainActivity erweitert AppCompatActivity {

private View mContentView;
@Override
public void onResume(){
    super.onResume();

    mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

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

    setContentView(R.layout.fullscreen2);
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null)
    {
        actionBar.hide();
    }
    mContentView = findViewById(R.id.fullscreen_content_text);
    mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);



    View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener
            (new View.OnSystemUiVisibilityChangeListener()
            {
                @Override
                public void onSystemUiVisibilityChange(int visibility)
                {
                    System.out.println("print");

                    if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)
                    {
                        mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                                | View.SYSTEM_UI_FLAG_FULLSCREEN
                                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
                    }
                    else
                    {

                        mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
                                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

                        }
                }
            });

}

}

Dies ist mein Splash-Screen-Layout: 

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical" Android:layout_width="fill_parent"
    Android:layout_height="fill_parent">
    <ImageView Android:id="@+id/splashscreen" Android:layout_width="wrap_content"
        Android:layout_height="fill_parent"
        Android:background="@Android:color/white"
        Android:src="@drawable/splash"
        Android:layout_gravity="center"/>
    <TextView Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:text="Hello World, splash"/>
</LinearLayout>

This is my fullscreen layout
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:background="#0099cc"
        >
        <TextView
            Android:id="@+id/fullscreen_content_text"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:gravity="center"
            Android:keepScreenOn="true"
            Android:text="@string/dummy_content2"
            Android:textColor="#33b5e5"
            Android:textSize="50sp"
            Android:textStyle="bold" />

    </FrameLayout>

Ich hoffe, dies wird dir helfen

0