Wie kann ich die Aktionsleiste ausblenden, bevor eine Aktivität erstellt wird, und sie dann erneut anzeigen?

243

Ich muss den Begrüßungsbildschirm in meiner Waben-App implementieren. Ich verwende diesen Code in onCreate der Aktivität, um Splash anzuzeigen:

setContentView(R.layout.splash);
getActionBar().hide();

und dieser Code, um die Hauptbenutzeroberfläche nach einiger Zeit anzuzeigen:

setContentView(R.layout.main);
getActionBar().show();

Aber bevor onCreate genannt wird und Splash erscheint, gibt es wenig Zeit , wenn der Aktionsleiste angezeigt.

Wie kann ich die Aktionsleiste unsichtbar machen?

Ich habe versucht, ein Thema auf Aktivitäten ohne Aktionsleiste anzuwenden:

<item name="android:windowActionBar">false</item>

In diesem Fall gibt getActionBar () immer null zurück und ich habe keine Möglichkeit gefunden, es erneut anzuzeigen.

Ilya Izhovkin
quelle
Für Theme.AppCompat.Light... nutzen diese wie man Antwort [1] [1]: stackoverflow.com/a/25365193/1364896
Sami Eltamawy

Antworten:

335

Durch das Festlegen wird android:windowActionBar="false"die Aktionsleiste wirklich deaktiviert, aber dann wird, wie Sie sagen, getActionBar();null zurückgegeben. Dies wird gelöst durch:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
    getActionBar().hide();

    setContentView(R.layout.splash); // be sure you call this AFTER requestFeature

Dadurch wird die ActionBar erstellt und sofort ausgeblendet, bevor sie angezeigt werden kann.

Aber jetzt gibt es ein anderes Problem. Nach windowActionBar="false"dem Einfügen des Themas zeichnet die Aktivität ihren normalen Fenstertitel anstelle einer Aktionsleiste.
Wenn wir versuchen, dies zu vermeiden, indem wir einige der *.NoTitleBarStandardthemen verwenden, oder wenn wir versuchen, ein <item name="android:windowNoTitle">true</item>eigenes Thema einzufügen, funktioniert dies nicht.
Der Grund dafür ist, dass die ActionBar vom Fenstertitel abhängt , um sich selbst anzuzeigen - das heißt, die ActionBar ist ein transformierter Fenstertitel.
Der Trick, der uns helfen kann, besteht darin, unserem Aktivitätsthema xml noch etwas hinzuzufügen:

<item name="android:windowActionBar">false</item>
<item name="android:windowTitleSize">0dp</item>

Dadurch wird der Fenstertitel mit einer Höhe von Null praktisch unsichtbar.

In Ihrem Fall können Sie nach dem Anzeigen des Begrüßungsbildschirms einfach anrufen

setContentView(R.layout.main);
getActionBar().show();

und du bist fertig. Die Aktivität wird gestartet, ohne dass die ActionBar flackert oder der Fenstertitel angezeigt wird.

ADDON: Wenn Sie ein- und ausblenden die ActionBar mehrere Male vielleicht haben Sie bemerkt , dass die erste Vorführung ist nicht animiert. Von da an werden das Ein- und Ausblenden animiert. Wenn Sie auch bei der ersten Show eine Animation haben möchten, können Sie Folgendes verwenden:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_ACTION_BAR);

    // delaying the hiding of the ActionBar
    Handler h = new Handler();
    h.post(new Runnable() {     
        @Override
        public void run() {
            getActionBar().hide();
        }
    });

Dasselbe kann erreicht werden mit:

protected void onPostResume() {
    super.onPostResume();
    getActionBar().hide();

Möglicherweise ist jedoch eine zusätzliche Logik erforderlich, um zu überprüfen, ob dies die erste Anzeige der Aktivität ist.

Die Idee ist, das Verstecken der ActionBar etwas zu verzögern. In gewisser Weise lassen wir die ActionBar anzeigen, verstecken sie dann aber sofort. Wir gehen also über die erste nicht animierte Show hinaus und die nächste Show wird als zweite betrachtet, also wird sie animiert.

Wie Sie vielleicht schon erraten haben gibt es eine Chance , dass die ActionBar könnte , bevor es durch die verzögerte Operation versteckt wurde gesehen werden. Dies ist tatsächlich der Fall. Meistens ist nichts zu sehen, aber ab und zu flackert die ActionBar für den Bruchteil einer Sekunde.

Auf jeden Fall ist dies keine schöne Lösung, daher freue ich mich über Vorschläge.

Zusätzlich für v7 Unterstützung ActionBar Benutzer, wird der Code sein:

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getSupportActionBar().hide();
Kleriker
quelle
2
@newton_guima ja, es funktioniert. Denken Sie daran, supportRequestWindowFeature (Window.FEATURE_ACTION_BAR) zu verwenden
scana
@Cleric - Wie machst du das alles, um damit zu arbeiten setTheme? Da Ihre Antwort gut funktioniert, wenn ich das Thema aus dem Manifest heraus einstelle, aber wenn ich es in onCreate(in meinem Fall hängt das Thema von einer Präferenz für ein helles oder dunkles Thema ab) mache, blinkt die Standard-Holo-Aktionsleiste vor der in meinem Thema festgelegten wie auch immer. Aber vielleicht ist dies eine weitere vollständige SO-Frage wert.
Dentex
2
@Cleric Danke. Ich habe meine Problemstellung android:theme="@android:style/Theme.NoTitleBar"im Manifest und dann setTheme(R.style.MyTheme)in den Hauptaktivitäten gelöst onCreate. Dies stellt sicher, dass (in Android 4+) das Aufblitzen des Standard-Holos ActionBarvor dem in meinem Thema definierten vermieden wird (ich bin hier angekommen, um dies zu umgehen; ich benötige eigentlich keinen Begrüßungsbildschirm).
Dentex
2
Ich rufe getSupportActionBar().hide();nach getWindow().requestFeature(Window.FEATURE_ACTION_BAR);und alles explodiert mit einem NPE. Irgendwelche Ideen? Problem mit Theme.AppCompat?
Loeschg
1
@loeschg: Ich hatte das gleiche Problem und fand diese Lösung: stackoverflow.com/a/20315456/3514976
nonzaprej
50

Verwenden Sie diesen einfachen Code in Ihrer .class-Datei, um die Aktionsleiste auszublenden

getSupportActionBar().hide();
gaurav
quelle
37

Wenn Sie ActionBarSherlock verwenden, verwenden Sie Theme.Sherlock.NoActionBar Theme in Ihrer Aktivität

<activity 
    android:name=".SplashScreenActivity"
    android:theme="@style/Theme.Sherlock.NoActionBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
kaubatak
quelle
1
Gleiches gilt für die Standard Android 3+ ActionBar (kein Sherlock) : <activity android:theme="@android:style/Theme.NoActionBar">.
Alex Semeniuk
Perfekte Lösung :) Danke.
Alicanbatur
7
Ich verstehe nicht, wie dies eine Antwort auf Ilyas Frage ist. Das Setzen des Themas bedeutet, dass Sie Theme.Sherlock.NoActionBaranrufen getActionBar()oder getSupportActionBar()(um anschließend die Aktionsleiste anzuzeigen) null zurückgeben ...
Adil Hussain
@ AlexSemeniuk Wenn ich diese Zeile im Manifest verwende, erhalte ich folgende Fehlermeldung:error: Error: No resource found that matches the given name (at 'theme' with value '@android:style/ Theme.NoActionBar').
Si8
1
@ SiKni8 Sind Sie sicher, dass Sie die API13 + -Bibliothek für Ihre Anwendung verwenden?
Alex Semeniuk
19

Erstellen Sie zwei Stile:

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

<style name="AppThemeBar" parent="Theme.AppCompat.Light">
    <item name="android:windowNoTitle">false</item>
</style>

Legen Sie AppThemeNoBar als Anwendungsthema und AppThemeBar auf die Aktivität fest, in der Sie die ActionBar anzeigen möchten. Wenn Sie zwei Stile verwenden, wird die Aktionsleiste beim Laden der Ansichten nicht angezeigt.

Überprüfen Sie diesen Link Android: Aktionsleiste beim Laden der Ansicht ausblenden

Laranjeiro
quelle
Schließlich! Hat für mich gearbeitet. Vielen Dank. :)
Dhofca
Dies funktioniert unter Android 2.3.3 mit AppCompat nicht. ActionBar wird angezeigt. Dies funktioniert jedoch mit KitKat.
Yar
17

Hallo, ich habe eine einfache Lösung mit 2 Themen

  1. Begrüßungsbildschirm-Thema (zum Manifest hinzufügen):

    <style name="SplashTheme" parent="@android:style/Theme.Holo.NoActionBar"> <item name="android:windowBackground">@color/red</item> </style>

  2. normales Thema (fügen Sie es in Ihrer Aktivität von setTheme (R.style.Theme) hinzu):

    <style name="Theme" parent="@style/Theme.Holo"> <item name="android:windowBackground">@color/blue</item> </style>

So unterstützen Sie SDK 10:

@Override    
public void onCreate(Bundle savedInstanceState) {

    setTheme(R.style.Theme);      
    super.onCreate(savedInstanceState);

      ...........
      ...........
}
Abdullah
quelle
15

Ich habe auch versucht, die Aktionsleiste unter Android 2.2 auszublenden, aber keine dieser Lösungen hat funktioniert. Alles endet mit einem Absturz. Ich habe das DDMS-LOg überprüft. Es hat mir gesagt, dass ich 'Theme.AppCompat' verwenden soll. Zuletzt habe ich das Problem durch Ändern der android:theme="@android:style/Theme.Holo.Light.NoActionBar"Zeile gelöst

in android:theme="@style/Theme.AppCompat.NoActionBar"und es funktionierte, aber das Interface war dunkel.

dann habe ich versucht android:theme="@style/Theme.AppCompat.Light.NoActionBar"und endlich bekommen was ich wollte.

Danach, als ich auf der Entwicklerseite nach 'AppCompat' suchte, bekam ich Folgendes .

Ich denke also, die Lösung für Android 2.2 ist

<activity
    android:name=".MainActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Und Entschuldigung für mein schlechtes Englisch wie immer.

S. Ahsan
quelle
12

Das beste Ergebnis für mich war, eine Aktivität mit ThemeNoTitleBar und ohne Inhalt als Launcher zu erstellen. Dann ruft diese Aktivität direkt den anderen an.

Wenn Sie möchten, können Sie der Splash-Aktivität natürlich Inhalte hinzufügen, aber in meinem Fall wollte ich die Anwendung nur direkt anzeigen.

Manifest:

<activity
        android:name="com.package.SplashActivity"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Aktivität:

public class SplashActivity extends Activity{

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

    //start StartActivity
    Intent intent = new Intent(this, StartActivity.class);
    startActivity(intent);
    finish();
}

}}

Javak
quelle
9

Wenn Sie einen Activitymit Begrüßungsbildschirm verwendeten verwenden, können Sie dies tun, wenn Sie verwendenSherlockActionBar

getSupportActionBar().hide();

Nach dem Begrüßungsbildschirm können Sie es erneut mit ...

getSupportActionBar().show();

Dies sollte auch bei nativen ActionBarAndroid- Geräten der Fall sein .

Luser_k
quelle
6

@ Clerics-Lösung funktioniert. Dies scheint jedoch auch ein Problem bei einigen nativen Apps von Googles zu sein: Googles, Play Store, Talk. Auch andere große Apps wie Skype.

EDIT : Die folgende Lösung hat mir ein Problem mit dem Actionbarsherlock auf API <4.0 beschert. Der Grund dafür ist, dass setTheme vor dem Eiscremesandwich nicht funktioniert

Fügen Sie in Ihrem Manifest in Ihren Anwendungs- oder Aktivitäts-Tags Folgendes hinzu:

android:theme="@style/Theme.NoActionBar"

Und dann in Ihrer Haupttätigkeit:

    // Set theme
    setTheme(R.style.YOUR_THEME);
    getSupportActionBar().setTitle(R.string.title);

    // Start regular onCreate()
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
Warpzit
quelle
6

am besten und einfach

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

arslan haktic
quelle
6

Legen Sie 2015 mithilfe der Support v7-Bibliothek mit dem AppCompat-Thema dieses Thema für Ihre Aktivität fest.

<style name="AppTheme.AppStyled" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimaryDark">@color/md_indigo_100</item>
    <item name="colorPrimary">@color/md_indigo_500</item>
    <item name="colorAccent">@color/md_red_500</item>
    <item name="android:textColorPrimary">@color/md_white_1000</item>
    <item name="android:textColor">@color/md_purple_500</item>
    <item name="android:textStyle">bold</item>
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>
Sohn Nguyen Thanh
quelle
4

Denn Splashscreendu solltest diese Zeile verwenden manifestund nicht verwendengetActionBar()

<item name="android:windowActionBar">false</item>

und einmal, wenn Splash Activityin der Hauptverwendung Activityunten beendet ist oder nichts

<item name="android:windowActionBar">true</item>
ingsaurabh
quelle
Dies funktioniert tatsächlich, wenn Sie ein anderes Thema für die Begrüßungsseite als die Hauptseite Ihrer Anwendung verwenden. Verwenden Sie einfach android: theme = "@ style / mytheme" sowohl für die Hauptaktivität (Ihren Begrüßungsbildschirm) als auch für die erste Aktivität Ihrer Anwendung, bei der es sich nicht um den Begrüßungsbildschirm handelt, der Themen austauscht.
ThanksMister
1
Dies gibt einen Fehler auf den aktuellen API-Ebenen: "Attribut fehlt das Android-Namespace-Präfix." <item android:name="android:windowActionBar">true</item>wird diesen Fehler los, aber ich weiß nicht, ob es noch funktioniert.
LarsH
3

Versuchen Sie dies, es funktioniert für mich:

Unten wird die Titelleiste der Aktivität entfernt

 requestWindowFeature(Window.FEATURE_NO_TITLE);

Unten wird die Benachrichtigungsleiste entfernt, damit die Aktivität im Vollbildmodus ausgeführt wird

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

(Vollständiges Beispiel unten) Beachten Sie: Diese Methoden wurden aufgerufen, bevor wir die Inhaltsansicht unserer Aktivität festlegen

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

        // Sets Application to full screen by removing action bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);    
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_main); 

        // without this check, we would create a new fragment at each orientation change!
        if (null == savedInstanceState)
            createFragment();
    }
user3862873
quelle
Bitte klären Sie, warum dies funktioniert oder warum dies Ihrer Meinung nach funktionieren sollte. Das Einfügen von Code führt nicht zu einer vollständigen Antwort.
Kris
@Kris, Oh ich verstehe was du meinst, Danke!
user3862873
3

Dies kann nützlich sein,
um dies Ihrem Manifest hinzuzufügen

 android:theme="@android:style/Theme.Light.NoTitleBar" 

Prost

ralphgabb
quelle
Warum etwas posten, das nicht so gut ist wie die Top-Antwort in einer so alten Frage?
Gsamaras
Die 'Top-Antwort' hat mir nicht geholfen, also fand ich mich mit dieser Antwort wieder und postete sie hier.
Ralphgabb
2

Der beste Weg, den ich nach dem Lesen aller verfügbaren Optionen finde, besteht darin, das Hauptthema ohne ActionBar festzulegen und dann MyTheme im Code übergeordneter aller Aktivitäten einzurichten.

Manifest:

<application
...
        android:theme="@android:style/Theme.Holo.Light.NoActionBar"
...>

BaseActivity:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTheme(R.style.GreenHoloTheme);
}

Auf diese Weise kann ich ActionBar beim Start der Anwendung vermeiden!

DmRomantsov
quelle
1

Die bereits veröffentlichten Lösungen hatten den Nebeneffekt, dass der erste Aufruf von .show () die ActionBar für mich nicht animierte. Ich habe eine andere nette Lösung bekommen, die das behoben hat:

Erstellen Sie ein transparentes Zeichen - so etwas:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
       android:color="#00000000" />
</shape>

Stellen Sie den tatsächlichen Hintergrund der Aktionsleiste auf eine unsichtbare benutzerdefinierte Ansicht ein, die Sie in der Aktionsleiste festgelegt haben:

getSupportActionBar().setCustomView(R.layout.actionbar_custom_layout);
      getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
              ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

Legen Sie den transparenten Hintergrund für die Aktionsleiste in onCreate fest:

getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.background_transparent));

Wichtig: Blenden Sie die Aktionsleiste nicht sofort in onCreate aus, sondern mit einer kleinen Verzögerung später - z. B. wenn das Layout mit der Erstellung fertig ist:

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    getSupportActionBar().hide();
                }
            });

Stellen Sie vor Ihrem ersten Aufruf von .show () die benutzerdefinierte Ansicht sichtbar ein:

_actionbarRoot.setVisibility(View.VISIBLE);
getSupportActionBar().show();
mAx
quelle
1

Falls Sie null haben, weil Sie die Support-Bibliothek verwenden , getActionBar()müssen Sie nicht aufrufen getSupportActionBar().

Naskov
quelle
1

Fügen Sie dies einfach in der onCreate-Funktion zu Ihrer MainActivity hinzu.

val actionBar = supportActionBar?.apply { hide() }
MöritzRo
quelle
Es ist Arbeit an AndroidX. Fügen Sie einfach nach setContentView () diese Zeile hinzusupportActionBar?.apply { hide() }
Black_Zerg
0

Platzieren Sie Ihren Begrüßungsbildschirm in einer separaten Aktivität und verwenden startActivityForResultSie die onCreateMethode Ihrer Hauptaktivität , um ihn anzuzeigen. Dies funktioniert, weil laut den Dokumenten:

Wenn Sie als Sonderfall startActivityForResult () mit einem requestCode> = 0 während des ersten onCreate (Bundle savedInstanceState) / onResume () Ihrer Aktivität aufrufen, wird Ihr Fenster erst angezeigt, wenn ein Ergebnis von der gestarteten Aktivität zurückgegeben wird . Dies dient dazu, sichtbares Flackern zu vermeiden, wenn Sie zu einer anderen Aktivität umleiten.

Sie sollten dies wahrscheinlich nur tun, wenn das Argument dazu onCreatelautetnull (was auf einen Neustart Ihrer Aktivität hinweist, im Gegensatz zu einem Neustart aufgrund einer Konfigurationsänderung).

Ted Hopp
quelle
Das funktioniert nicht. Wenn onCreate () gestartet wird, ist die Aktionsleiste bereits sichtbar. Dies wird beim Debuggen deutlich.
Ilya Izhovkin
0

Ich hatte immer noch einen Fehler mit dem Nullzeiger und schließlich half es, als ich zuerst getWindow (). RequestFeature () und dann super.onCreate () aufrief.

public void onCreate(Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
super.onCreate(savedInstanceState);
getActionBar().show();
Matwosk
quelle
0

Fügen Sie dies einfach in Ihre styles.xml ein

<item name="android:windowNoTitle">true</item>
Jakub Trzcinka
quelle
0

Eigentlich könnten Sie einfach Splash Activitymit NoActionBar und Ihre Haupt activitymit Aktionsleiste einstellen .

Chauyan
quelle
0

Der beste Weg, dies zu tun, besteht darin, die erste Aktivität als leere Aktivität und den Inhalt, den Sie einfügen möchten, zu erstellen und nach einiger Zeit eine weitere Aktivität auszulösen. Auf diese Weise können Sie die erste Aktivität als Begrüßungsbildschirm ohne Aktionsleiste oder ähnliches ausführen. Hier ist meine erste Aktivität

package com.superoriginal.rootashadnasim.syllabus;

import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class first_screen extends AppCompatActivity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first_screen);


    final Handler h=new Handler();
    h.postDelayed(new Runnable() {
        @Override
        public void run() {
            Intent intent=new     Intent(getApplicationContext(),DrawerChooseBranchMainActivity.class);
            startActivity(intent);
        }
    },2000);

}
}

Danach können Sie jede Ihrer Aktivitäten als erste Aktivität festlegen. Wenn Sie keine Aktionsleiste in einem Bildschirm wünschen, fügen Sie diese einfach in Ihre Stile ein

    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
Ashad
quelle
0

Android Studio bietet eine Build-Vorlage für den Vollbildmodus. Wenn Sie Android Studio verwenden, können Sie den folgenden Schritt ausführen, um die Vollbildaktivität zu implementieren.

Erster Schritt zum Erstellen einer neuen Aktivität

Wählen Sie Vollbildaktivität auswählen

Getan. Android Studio hat Ihren Job gemacht, jetzt können Sie den Code für den Vollbildmodus überprüfen.

Hitesh Dhamshaniya
quelle
-1

Dies ist der beste Weg, den ich verwendet habe. Gehe zu Java-Datei, nachdem onCreate:

@Override
    protected void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 

        // Take instance of Action Bar 
        // using getSupportActionBar and 
        // if it is not Null 
        // then call hide function 
        if (getSupportActionBar() != null) { 
            getSupportActionBar().hide(); 
        } 
    }
DJEMAL Mohamed
quelle
-3

Mir ist klar, dass das Posten von Links nicht der beste Weg ist, aber ich empfehle Ihnen dringend, die folgende Dokumentation von Google selbst zu lesen. Dies ist das offizielle Android-Dokument zur Steuerung Ihrer System-Benutzeroberfläche (z. B. Aktionsleiste, Navigationsleiste usw.). Leider sind die Informationen zu viel, um sie direkt zu veröffentlichen, aber nachdem Sie dies gelesen haben, werden Sie genau verstehen, wie Sie Funktionen ein- und ausblenden, unabhängig davon, für welche Version Sie sie entwickeln. Es ist so einfach!

Falls sich der Link jemals ändert, finden Sie ihn in der offiziellen Android-Dokumentation unter Training -> Erste Schritte -> Best Practices für die Benutzeroberfläche -> Verwalten der System- Benutzeroberfläche

https://developer.android.com/training/system-ui/index.html

Geben Sie hier die Bildbeschreibung ein

Chris
quelle
-4

Sie können dies verwenden:

getSupportActionBar().hide(); Wenn es nicht funktioniert, versuchen Sie Folgendes:

getActionBar().hide();

Wenn dies nicht funktioniert, versuchen Sie es wie folgt:

Öffnen Sie in Ihrem Verzeichnis = res / values ​​/ style.xml style.xml -> es gibt eine Attributänderung parentinparent="Theme.AppCompat.Light.DarkActionBar"

wenn das alles auch nicht funktioniert. Ich weiß es nicht mehr. aber bei mir funktioniert es.

Sen.
quelle
getSupportActionBar (). hide (); wurde in der am höchsten bewerteten Antwort getActionBar () erwähnt. hide (); wurde in der Frage erwähnt und DarkActionBar wurde in der Antwort von Son Nguyen Thanh erwähnt. Außerdem ist diese Frage 4 Jahre alt und hat bereits mehrere Antworten mit hohen Stimmen.
August