941 Stimmen

Ausblenden der Titelleiste für eine Aktivität in XML mit vorhandenem benutzerdefinierten Thema

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

Die Verwendung des NoTitleBar Thema als übergeordnetes Element für meinen Stil würde die Titelleiste aus allen meinen Aktivitäten entfernen.

Kann ich irgendwo ein Element ohne Titel einstellen?

6voto

David Punkte 2021

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.

5voto

Tarik Punkte 10115

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);
    }
}

5voto

Samuel Ivan Punkte 2606

Fügen Sie das Thema @style/Theme.AppCompat.Light.NoActionBar in Ihre Aktivität auf AndroidManifest.xml wie folgt ein

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

5voto

Dzhuneyt Punkte 7719

Ich habe zwei Gründe gefunden, warum dieser Fehler auftreten kann.

Erstens. Die Window-Flags sind bereits gesetzt in super.onCreate(savedInstanceState); In diesem Fall sollten Sie die folgende Reihenfolge der Befehle 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 Zurück/Aufwärts innerhalb der Titelleiste, was bedeutet, dass die aktuelle Aktivität ein hierarchisches Kind einer anderen Aktivität ist. In diesem Fall sollten Sie diese Codezeile auskommentieren oder aus der onCreate Methode.

getActionBar().setDisplayHomeAsUpEnabled(true);

0 Stimmen

Danke, es hat mir geholfen, NoTitle und FullScreen ohne Theme-Änderung einzustellen

5voto

fergerm Punkte 231

Wenn Sie tun, was Benutzer YaW y Doug Paul sagen, dann müssen Sie bedenken, dass die Fenstereigenschaften vor dem Aufruf von setContentView festgelegt werden müssen. Wenn nicht, erhalten Sie eine Ausnahme.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X