So blenden Sie die Titelleiste für eine Aktivität in XML mit einem vorhandenen benutzerdefinierten Thema aus

876

Ich möchte die Titelleiste für einige meiner Aktivitäten ausblenden. Das Problem ist, dass ich auf alle meine Aktivitäten einen Stil angewendet habe, daher kann ich das Thema nicht einfach festlegen @android:style/Theme.NoTitleBar.

Wenn Sie das NoTitleBar- Thema als übergeordnetes Element für meinen Stil verwenden, wird die Titelleiste aus allen meinen Aktivitäten entfernt.

Kann ich irgendwo ein Element ohne Titel festlegen?

Janusz
quelle

Antworten:

1065

Tun Sie dies in Ihrer onCreate()Methode.

//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//set content view AFTER ABOVE sequence (to avoid crash)
this.setContentView(R.layout.your_layout_name_here); 

thisbezieht sich auf die Activity.

Gieren
quelle
7
Gute Antwort. Sie müssen jedoch nicht beides tun. Das Entfernen der Benachrichtigungsleiste kann zu viel des Guten sein.
Jim Blackler
209
Stellen Sie sicher, dass Sie es vor dem Aufruf von setContentView (R.id.x) einfügen, da es sonst abstürzt. Der Grund war mir nicht sofort klar. 08-13 12: 47: 33.561 E / AndroidRuntime (9125): java.lang.RuntimeException: Aktivität ComponentInfo {com.myapp / com.myapp.SplashActivity} kann nicht gestartet werden: android.util.AndroidRuntimeException: requestFeature () muss aufgerufen werden vor dem Hinzufügen von Inhalten
Mobibob
9
Sie sollten wirklich erwähnen, dass bei Verwendung von requestWindowFeature () ein Force-Close auftritt, wenn Sie diese Zeile nach dem Hinzufügen von Inhalten ausführen . Nebenbei bemerkt, die XML-Methode ist viel sicherer und trennt auch die Seitenstruktur von Ihrem Code (was in erster Linie der gesamte Zweck der XMLs ist).
b1nary.atr0phy
21
Dies funktioniert nicht mit API 22. Ich sehe die Titelleiste zunächst immer noch, wenn die App startet.
user2966445
7
Es funktioniert, wenn Ihre Aktivität Aktivität NICHT AppCompatActivity erweitert, dh Ihre Klasse sollte als öffentliche Klasse deklariert werden. myActi erweitert Aktivität {}
Manpreet Singh Dhillon
523

Sie können Folgendes ändern AndroidManifest.xml:

<activity android:name=".MainActivity"
          android:label="@string/app_name"
          android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

oder verwenden android:theme="@android:style/Theme.Black.NoTitleBar"Sie, wenn Sie keine Vollbildaktivität benötigen.

Hinweis: Wenn Sie zuvor eine Standardansicht verwendet haben, sollten Sie wahrscheinlich auch die übergeordnete Klasse von AppCompatActivityin ändern Activity.

Redax
quelle
1
Ich weiß nicht warum. Ich habe nur das Standardprojekt verwendet und eine Aktivität hinzugefügt. Die Autovervollständigung funktioniert nicht, aber das Thema ist da.
Redax
82
android:theme="@android:style/Theme.Black.NoTitleBar"ist wahrscheinlich nützlicher, es sei denn, Sie machen ein Spiel
Chris S
7
Oder <style name = "AppTheme" parent = "android: Theme.Light.NoTitleBar" />, um das Thema zu beleuchten.
Fernando JS
20
Ich weiß nicht warum, aber dies stürzt meine App ab. Irgendeine Hilfe?
Akeshwar Jha
12
@Akeshwar: Möglicherweise müssen Sie sich mit Ihrer Datei styles.xml anlegen. Ändern Sie beispielsweise <style name = "AppTheme" parent = "Theme.AppCompat.Light.DarkActionBar"> in <style name = "AppTheme" parent = "Theme.AppCompat.Light.NoActionBar">. In diesem Fall müssen Sie Ihre AndroidManifest.xml-Datei nicht ändern. (Ich hatte auch den Absturz, bis ich dieses
Update durchgeführt habe
385

Ich habe jetzt folgendes getan.

Ich habe einen Stil deklariert, der alles von meinem allgemeinen Stil erbt und dann die titleBar deaktiviert.

<style name="generalnotitle" parent="general">
    <item name="android:windowNoTitle">true</item>
</style>

Jetzt kann ich diesen Stil für jede Aktivität festlegen, bei der die Titelleiste ausgeblendet werden soll, um den anwendungsweiten Stil zu überschreiben und alle anderen Stilinformationen zu erben, sodass der Stilcode nicht dupliziert wird.

Um den Stil auf eine bestimmte Aktivität anzuwenden, öffnen Sie AndroidManifest.xmldas activityTag und fügen Sie dem Tag das folgende Attribut hinzu .

<activity
    android:theme="@style/generalnotitle">
Janusz
quelle
13
Ich glaube, er hat einen Stil namens "General" kreiert und erweitert ihn nur. Entfernen Sie es einfach für Ihren eigenen Gebrauch.
rcl
7
+1 für die Beantwortung der Frage, anstatt nur den naheliegendsten Weg anzugeben, um ähnliche Ergebnisse zu erzielen, wie es die meisten anderen Antworten auf diese Frage tun. Es ist nur eine Schande, dass Sie Ihre eigene Frage beantworten mussten, um eine genaue Antwort zu erhalten ...
Jules
1
Diese Antwort ist die beste. Sie können auch jedes andere von Android bereitgestellte Thema ohne Titelleiste verwenden. Vielen Dank für das Teilen
Narendra Pal
4
Ich glaube, dies ist eine elegantere Lösung als die programmatische this.requestWindowFeature (Window.FEATURE_NO_TITLE); weil in diesem Fall noch ein "Blinken" des Titels sichtbar ist
oben
1
Beste Antwort auf OP-Frage :) Aber das entfernt immer noch nicht die Titelleiste meiner Aktivität (API19)
1111161171159459134
166

Ich mag das nicht, this.requestWindowFeature(Window.FEATURE_NO_TITLE);weil die Titelleiste kurz erscheint und dann verschwindet.

Ich mag das auch nicht, android:theme="@android:style/Theme.NoTitleBar"weil ich alle Holo-Änderungen ab 3.0 verloren habe, an die sich die Benutzer der neuen Geräte gewöhnt haben. Also bin ich auf diese Lösung gestoßen.

Erstellen Sie in Ihrem Ordner res / values eine Datei mit dem Namen styles.xml (falls noch nicht vorhanden). Fügen Sie in diese Datei den folgenden Code ein:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.NoTitleBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.NoTitleBar.Fullscreen"></style>
</resources>

Erstellen Sie als Nächstes eine res / values-v11 mit einer anderen Datei styles.xml (diese ist möglicherweise bereits vorhanden). Fügen Sie in diese Datei den folgenden Code ein:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen"></style>
</resources>

Wenn Sie auf 4.0+ abzielen, erstellen Sie einen Ordner res / values-v14 mit einer weiteren Datei styles.xml (Ja, möglicherweise ist sie bereits vorhanden). Fügen Sie in diese Datei den folgenden Code ein:

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="Theme.Default" parent="@android:style/Theme.Holo.Light"></style>
    <style name="Theme.NoTitle" parent="@android:style/Theme.Holo.Light.NoActionBar"></style>
    <style name="Theme.FullScreen" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"></style>
</resources>

Nachdem Sie alle diese Dateien erstellt haben, öffnen Sie Ihre AndroidManifiest.xml- Datei und fügen den folgenden Code hinzu:

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

auf das Aktivitäts-Tag der Aktivität, für die Sie keinen Titel möchten, oder auf das Anwendungs-Tag, wenn Sie möchten, dass es auf die gesamte Anwendung angewendet wird.

Jetzt erhalten Ihre Benutzer die mit ihrer Geräteversion verknüpften Themen mit dem gewünschten Bildschirmlayout.

PS Das Ändern des Werts auf android:theme="@style/Theme.FullScreen"hat den gleichen Effekt, entfernt jedoch auch die Benachrichtigungsleiste.

Devin Stewart
quelle
Sie ... das funktioniert gut für das, was Sie gesagt haben, aber die Bilder wurden beim Ändern der Themen geschrien. Also was tun ???
Arun
1
@arun - Ich hatte keine Bildprobleme mit dieser Methode. Was meinst du mit kreischen?
Devin Stewart
1
Beste Antwort .. this.requestWindowFeature (Window.FEATURE_NO_TITLE); ist nicht geeignet und <item name = "android: windowNoTitle"> true </ item> hat das ursprüngliche Thema verloren. Danke @DevinStewart. Akzeptiere +1 für deine Erklärung :)
lynndragon
5
Ah, dumm mich! Ich habe die ActionBarActivity verwendet, was keinen Sinn macht, wenn Sie die ACTIONBAR ENTFERNEN möchten! Durch den Wechsel zu einer einfachen Aktivität oder FragmentActivity kann diese nette Lösung wie ein Zauber wirken.
Scott Biggs
1
"Leider hat YourApp aufgehört."
Chris Allinson
104

Die Titelleiste kann auf zwei Arten entfernt werden, wie auf der Android-Entwicklerseite angegeben:

In der manifest.xmlDatei:

  1. Fügen Sie Folgendes hinzu, applicationwenn Sie es für alle Aktivitäten in einer App entfernen möchten:

    <application android:theme="@android:style/Theme.Black.NoTitleBar">
  2. Oder für eine bestimmte Aktivität:

    <activity android:theme="@android:style/Theme.Black.NoTitleBar">
weißer Schatten
quelle
15
Es ist besser, android: theme = "@ android: style / Theme.DeviceDefault.NoActionBar.Fullscreen" anstelle von black.theme zu verwenden. Lassen Sie das Gerät das Thema bearbeiten. aber danke, ich habe Ihren Ansatz verwendet
Varand Pezeshkian
54

Die richtige Antwort ist wahrscheinlich, ActionbarActivity nicht zu erweitern, sondern nur Activity zu erweitern


Wenn Sie die Actionbar-Aktivität weiterhin verwenden, funktioniert dies anscheinend:

@Override
protected void onCreate(Bundle savedInstanceState) {          
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide(); //<< this
    setContentView(R.layout.activity_main);
}

scheint das auch zu funktionieren:

styles.xml:

   <style name="AppBaseTheme" parent="Theme.AppCompat.Light" >
          <item name="android:windowNoTitle">true</item>   <!-- //this -->     
   </style>

Ich könnte es tun, wie Scott Biggs schrieb. diese Art von Arbeiten. außer es gibt dann kein Thema. Ich meine, der Hintergrund des Einstellungsmenüs ist transparent:

nur ändern

public class MainActivity extends ActionBarActivity {

zu Aktivität oder FragmentAktivität

public class MainActivity extends Activity  {

Ich könnte es jedoch mit Materialdesign gut genug aussehen lassen und die Aktionsleiste nicht entfernen: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53

  1. Symbol der Anwendung festlegen
  2. Stellen Sie die Farben der Aktionsleiste so ein, dass sie zum Design passen.
  3. Symbol auf Einstellungsmenü setzen
  4. weitere Symbole hinzufügen (Schaltflächen oben)

Dies ist ein Beispiel für die Gestaltung der Aktionsleiste in Bezug auf die Kompatibilität des Materialdesigns.

Shimon Doodkin
quelle
4
Das Ändern der ActionBarActivity in Activity hat den Trick für mich getan!
DritanX
44

was funktioniert bei mir:

1- in styles.xml:

 <style name="generalnotitle" parent="Theme.AppCompat.Light" >
          <item name="android:windowNoTitle">true</item>   <!-- //this -->     
   </style>

2- in MainActivity

@Override
protected void onCreate(Bundle savedInstanceState) {          
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide(); //<< this
    setContentView(R.layout.activity_main);
}
  1. im Manifest erben den Stil:

    <activity android:name=".MainActivity" android:theme="@style/generalnotitle">
Flowra
quelle
Wie oben beschrieben, funktioniert es manchmal nicht mit XML. Ich weiß nicht genau warum, ich bin nicht ganz sicher, aber getSupportActionBar().hide();innerhalb von onCreate () {} wird die Arbeit
erledigen
43

Wenn Sie verwenden, kann der this.requestWindowFeature(Window.FEATURE_NO_TITLE)Benutzer die Titelleiste nur für einen Moment während der Startanimation sehen, wenn die Aktivität beginnt onCreate. Wenn Sie @android:style/Theme.Black.NoTitleBarwie unten gezeigt verwenden, wird die Titelleiste während der Startanimation nicht angezeigt.

<activity 
    android:name=".MainActivity" 
    android:label="My App"
    android:theme="@android:style/Theme.Black.NoTitleBar"
    android:screenOrientation="portrait">

Das obige Beispiel überschreibt offensichtlich Ihr vorhandenes Anwendungsthema. Wenn Sie ein vorhandenes Thema haben, fügen Sie <item name="android:windowNoTitle">true</item>es hinzu.

raj c
quelle
Meine Aktivität ist eine einzelne Instanz mit @android: style / Theme.Black.NoTitleBar, aber die Verwendung dieses Codes funktioniert, wenn die Aktivität erstellt wird. Das erste Mal, wie Sie die SingleInstance-Aktivität kennen, wird dann erneut nicht erstellt, sodass nur die OnNewItent-Methode verwendet wird. Jetzt ist mein Problem, wenn die Aktivität angezeigt wird Es ist nur Statusleiste für 4 Sekunden anzeigen. Wie ich hier raus komme. Hier ist meine Frage Link ist stackoverflow.com/questions/9308767/…
Herry
29

Als ich versuchte, all diese hoch bewerteten Antworten zu verwenden, stürzte meine App immer ab. (Ich denke, es hat etwas mit dem "@android: style" zu tun?)

Die beste Lösung für mich war, Folgendes zu verwenden:

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

Keine Kopf- / Titelleiste mehr. Platzieren Sie es einfach in der <application>...</application>oder <activity>...</activity>abhängig davon, ob Sie es in der gesamten App oder nur in einer bestimmten Aktivität (nicht) möchten.

TryToSolveItSimple
quelle
Dies ist der beste Weg (oder der einzige Weg?), Wenn die App "AppCompatActivity erweitert"!
Ferrarezi
17

Erstellen Sie ein Thema wie unten.

 <!-- Variation on the Light theme that turns off the title -->
<style name="MyTheme" parent="android:style/Theme.Black">
    <item name="android:windowNoTitle">true</item>
</style>
sandig
quelle
16

Hinzufügen

<item name="android:windowNoTitle">true</item>

in AppTheme (styles.xml)

Nijas
quelle
15

Verwenden getActionBar().hide();Sie einfach in Ihrer Hauptaktivitätsmethode onCreate().

Anas Al Hamdan
quelle
14

Sie müssen nur den AppThemeStil in Style.xml ändern, wenn Sie die Definition von ersetzenDarkActionBar

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

zu NoActionBar

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

das in AndroidManifast.xml definierte AppTheme

Daniel Levi
quelle
14

Für AppCompatmich hat folgende Lösung funktioniert:

Fügen Sie einen neuen Themenstil ohne Aktionsleiste hinzu styles.xmlund legen Sie ihn fest parent="Theme.AppCompat.NoActionBar".

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorPrimary</item>

</style>


Implementieren Sie jetzt den gleichen Themenstil für Ihre Begrüßungsbildschirmaktivität in androidManifest.xml

<activity
        android:name=".ActivityName"
        android:theme="@style/SplashTheme"> // apply splash them here 

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

Hier ist das Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Krunal
quelle
11

Sie können diesen Code in Ihrer Java-Datei verwenden

Fügen Sie diese Zeile hinzu, bevor Sie Ihre Ansicht festlegen oder laden

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main);
Aneh Thakur
quelle
11

onCreateVerwenden Sie in Ihrer Methode das folgende Snippet:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Mahesh
quelle
Die App beginnt mit dem Titel und versteckt sich. Sie zeigt die App ohne Titel
Bachask8
10

Fügen Sie beide für das verwendete Thema hinzu:

    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
Android-Entwickler
quelle
"Leider hat YourApp aufgehört."
Chris Allinson
<item name="windowActionBar">false</item>führt zum Absturz der Anwendung. Vielleicht war es das, was @ChrisAllinson meinte
Mubashar
Kann nicht bestätigen. Funktioniert gut für mich.
Android-Entwickler
10

Fügen Sie diesen Stil Ihrer Datei style.xml hinzu

 <style name="AppTheme.NoActionBar">
     <item name="windowActionBar">false</item>
     <item name="windowNoTitle">true</item>
 </style>

Verweisen Sie danach auf diesen Stilnamen in Ihrer androidManifest.xml in einer bestimmten Aktivität, in der Sie die Titelleiste nicht sehen möchten, wie unten.

<activity android:name=".youractivityname"
     android:theme="@style/AppTheme.NoActionBar">
</activity>
Niemand
quelle
Sie haben das android:Präfix vor den Namen in Ihrem ersten Codeblock vergessen :)
Stam Kaly
8

Ich verwende ein Support-Widget Toolbar v7. Um den Titel löschen oder ausblenden zu können, müssen wir ihn schreiben.

Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

//Remove¡ing title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
MontDeska
quelle
perfekte Antwort.
Asesha George
7

Oder wenn Sie die Titelleiste an einer beliebigen Stelle ein- oder ausblenden möchten:

private void toggleFullscreen(boolean fullscreen)
{
    WindowManager.LayoutParams attrs = getWindow().getAttributes();
    if (fullscreen)
    {
        attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    else
    {
        attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    getWindow().setAttributes(attrs);
}
cprcrack
quelle
6

In meinem Fall, wenn Sie Android Studio 2.1 verwenden und Ihre SDK-Kompilierungsversion 6.0 ist, gehen Sie einfach zu Ihrer Datei manifest.xml und ändern Sie den folgenden Code:

Hier ist der Code:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lesterxu.testapp2">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

Und hier ist das Snip-Shooting (siehe Highlight-Code): Geben Sie hier die Bildbeschreibung ein

Lester
quelle
Willkommen bei SO. Bitte senden Sie Ihren Code direkt an SO, anstatt ein Bild Ihres Codes zu veröffentlichen.
Richard Erickson
6

Dies löste mein Problem

Im Manifest meiner Tätigkeit:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".SplashScreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

Stilvoll unter dem Namen "AppTheme":

<resources>

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

</resources>
Sam
quelle
6

Um sowohl die Titel- als auch die Aktionsleiste auszublenden, habe ich Folgendes getan:

Im Aktivitäts-Tag von Manifest:

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

In Activity.java vor setContentView:

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

dh

// Titelleiste entfernen

this.requestWindowFeature (Window.FEATURE_NO_TITLE);

// Benachrichtigungsleiste entfernen

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

HINWEIS : Sie müssen diese Zeilen vorher beibehaltensetContentView

Shylendra Madda
quelle
Ich bin nicht so erfahren in Java oder beim Erstellen von Android-Apps. Ihr Kommentar, dass diese Codezeilen vor setContentView stehen sollten, hat also wirklich geholfen! Vielen Dank!
Kyle van Til
5

Die erste Antwort ist Amphibol. Hier ist meine Erklärung: Hinzufügen:

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

in der Methode oncreate ().

Vor:

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);

(nicht nur vor setContentView) Wenn Sie dies nicht tun, erhalten Sie Forceclose. +1 diese Antwort.

David
quelle
4

Ich habe zwei Gründe gefunden, warum dieser Fehler auftreten könnte.

Eins. Die Fensterflags sind bereits gesetzt. super.onCreate(savedInstanceState);In diesem Fall möchten Sie möglicherweise die folgende Befehlsreihenfolge verwenden:

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

super.onCreate(savedInstanceState);

Zwei. Sie haben die Schaltfläche Sichern / Sichern in der Titelleiste. Dies bedeutet, dass die aktuelle Aktivität ein hierarchisches untergeordnetes Element einer anderen Aktivität ist. In diesem Fall möchten Sie diese Codezeile möglicherweise auskommentieren oder aus der onCreateMethode entfernen .

getActionBar().setDisplayHomeAsUpEnabled(true);
Dzhuneyt
quelle
Danke, es hat mir geholfen, NoTitle und FullScreen ohne Themenwechsel einzustellen
Mohsen Afshin
4

So sieht der vollständige Code aus. Beachten Sie den Import von android.view.Window.

package com.hoshan.tarik.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
    }
}
Tarik
quelle
4

Fügen Sie in Ihrer Aktivität auf AndroidManifest.xml wie folgt theme @ style / Theme.AppCompat.Light.NoActionBar zu Ihrer Aktivität hinzu

<activity
        android:name=".activities.MainActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
    </activity>
Samuel Ivan
quelle
3

Wenn Sie das tun, was die Benutzer YaW und Doug Paul sagen, müssen Sie berücksichtigen, dass Fensterfunktionen festgelegt werden müssen, bevor Sie setContentView aufrufen. Wenn nicht, erhalten Sie eine Ausnahme.

fergerm
quelle
3

in manifesteste Datei hinzufügen,

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

füge folgende Zeile in deine Java-Datei ein,

  this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Kunal Dharaiya
quelle
3

Ich benutze Android Xamarin und das hat bei mir funktioniert.

SupportActionBar.Hide();
SetContentView(Resource.Layout.activity_main);
jase
quelle