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?

70voto

Shimon Doodkin Punkte 3946

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


wenn Sie noch Actionbar-Aktivität verwenden scheint dies zu funktionieren:

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

scheint dies auch zu funktionieren:

styles.xml:

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

ich könnte so vorgehen, wie Scott Biggs schrieb. das funktioniert irgendwie. nur gibt es dann kein Thema. ich meine, der Hintergrund des Einstellungsmenüs ist transparent:

einfach ändern

public class MainActivity extends ActionBarActivity {

zu Aktivität oder FragmentActivity

public class MainActivity extends Activity  {

aber ich konnte es gut genug aussehen mit Material Design und nicht entfernen die Aktionsleiste nicht entfernen: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53

  1. Symbol der Anwendung festlegen
  2. die Farben der Aktionsleiste an das Design anpassen.
  3. Symbol in das Einstellungsmenü setzen
  4. weitere Icons hinzufügen (Schaltflächen oben)

Es ist ein Beispiel für die Kompatibilität der Aktionsleiste mit dem Material Design.

4 Stimmen

Das Ändern der ActionBarActivity in Activity hat bei mir den gewünschten Effekt gebracht!

58voto

Flowra Punkte 1322

Was für mich funktioniert:

1- in der Datei 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. in manifest erben den Stil:

    <activity android:name=".MainActivity" android:theme="@style/generalnotitle">

1 Stimmen

Wie oben beschrieben, funktioniert es manchmal nicht mit xml. Ich weiß nicht, warum genau, ich bin mir nicht ganz sicher, aber getSupportActionBar().hide(); innerhalb von onCreate(){} wird die Aufgabe erfüllen

1 Stimmen

Vielen Dank, das ist die klarste und einfachste Antwort

44voto

raj c Punkte 449

Wenn Sie this.requestWindowFeature(Window.FEATURE_NO_TITLE) Der Benutzer kann die Titelleiste nur kurz während der Startanimation sehen, wenn die Aktivität durch onCreate . Wenn Sie @android:style/Theme.Black.NoTitleBar wie unten gezeigt, 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">

obiges Beispiel überschreibt natürlich Ihr bestehendes Anwendungsthema, wenn Sie ein bestehendes Thema haben, dann fügen Sie <item name="android:windowNoTitle">true</item> dazu.

0 Stimmen

Meine Aktivität ist Single Instance mit @Android:style/Theme.Black.NoTitleBar aber mit diesem Code Arbeit wird, wenn Aktivität erstellt zum ersten Mal, wie Sie bekannt SingleInstance Aktivität dann wieder nicht erstellt, so dass es nur verwenden OnNewItent Methode aber jetzt mein Problem ist, wenn Aktivität zeigen, es ist nur Show Status Bar für 4 Second.How kann ich aus diesem bekommen.Hier ist meine Frage Link ist stackoverflow.com/questions/9308767/

36voto

Wenn ich versucht habe, all diese hoch bewerteten Antworten zu verwenden, ist meine App immer abgestürzt. (Ich denke, es hat etwas mit dem "@Android:style" zu tun?)

Die beste Lösung für mich war die Verwendung der folgenden Methode:

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

Keine Kopf-/Titelleiste mehr. Platzieren Sie es einfach in der <application>...</application> o <activity>...</activity> je nachdem, ob Sie es (nicht) in der gesamten App oder nur in einer bestimmten Aktivität haben wollen.

0 Stimmen

Dies ist der beste Weg (oder der einzige Weg?) Wenn die App "erweitert AppCompatActivity"!

18voto

sandy Punkte 3456

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>

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