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?
android
android-layout
titlebar
Janusz
quelle
quelle
Sie können Folgendes ändern
AndroidManifest.xml
: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
AppCompatActivity
in ändernActivity
.quelle
android:theme="@android:style/Theme.Black.NoTitleBar"
ist wahrscheinlich nützlicher, es sei denn, Sie machen ein SpielIch habe jetzt folgendes getan.
Ich habe einen Stil deklariert, der alles von meinem allgemeinen Stil erbt und dann die titleBar deaktiviert.
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.xml
dasactivity
Tag und fügen Sie dem Tag das folgende Attribut hinzu .quelle
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:
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:
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:
Nachdem Sie alle diese Dateien erstellt haben, öffnen Sie Ihre AndroidManifiest.xml- Datei und fügen den folgenden Code hinzu:
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.quelle
Die Titelleiste kann auf zwei Arten entfernt werden, wie auf der Android-Entwicklerseite angegeben:
In der
manifest.xml
Datei:Fügen Sie Folgendes hinzu,
application
wenn Sie es für alle Aktivitäten in einer App entfernen möchten:Oder für eine bestimmte Aktivität:
quelle
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:
scheint das auch zu funktionieren:
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
zu Aktivität oder FragmentAktivität
Ich könnte es jedoch mit Materialdesign gut genug aussehen lassen und die Aktionsleiste nicht entfernen: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53
Dies ist ein Beispiel für die Gestaltung der Aktionsleiste in Bezug auf die Kompatibilität des Materialdesigns.
quelle
was funktioniert bei mir:
1- in styles.xml:
2- in MainActivity
im Manifest erben den Stil:
quelle
getSupportActionBar().hide();
innerhalb von onCreate () {} wird die ArbeitWenn 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 beginntonCreate
. Wenn Sie@android:style/Theme.Black.NoTitleBar
wie unten gezeigt verwenden, wird die Titelleiste während der Startanimation nicht angezeigt.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.quelle
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:
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.quelle
Erstellen Sie ein Thema wie unten.
quelle
Hinzufügen
<item name="android:windowNoTitle">true</item>
in AppTheme (styles.xml)
quelle
Verwenden
getActionBar().hide();
Sie einfach in Ihrer HauptaktivitätsmethodeonCreate()
.quelle
Sie müssen nur den
AppTheme
Stil in Style.xml ändern, wenn Sie die Definition von ersetzenDarkActionBar
zu
NoActionBar
das in AndroidManifast.xml definierte AppTheme
quelle
Für
AppCompat
mich hat folgende Lösung funktioniert:Fügen Sie einen neuen Themenstil ohne Aktionsleiste hinzu
styles.xml
und legen Sie ihn festparent="Theme.AppCompat.NoActionBar"
.Implementieren Sie jetzt den gleichen Themenstil für Ihre Begrüßungsbildschirmaktivität in
androidManifest.xml
Hier ist das Ergebnis:
quelle
Sie können diesen Code in Ihrer Java-Datei verwenden
Fügen Sie diese Zeile hinzu, bevor Sie Ihre Ansicht festlegen oder laden
quelle
onCreate
Verwenden Sie in Ihrer Methode das folgende Snippet:quelle
Fügen Sie beide für das verwendete Thema hinzu:
quelle
<item name="windowActionBar">false</item>
führt zum Absturz der Anwendung. Vielleicht war es das, was @ChrisAllinson meinteFügen Sie diesen Stil Ihrer Datei style.xml hinzu
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.
quelle
android:
Präfix vor den Namen in Ihrem ersten Codeblock vergessen :)Ich verwende ein Support-Widget Toolbar v7. Um den Titel löschen oder ausblenden zu können, müssen wir ihn schreiben.
quelle
Oder wenn Sie die Titelleiste an einer beliebigen Stelle ein- oder ausblenden möchten:
quelle
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:
Und hier ist das Snip-Shooting (siehe Highlight-Code):
quelle
Dies löste mein Problem
Im Manifest meiner Tätigkeit:
Stilvoll unter dem Namen "AppTheme":
quelle
Um sowohl die Titel- als auch die Aktionsleiste auszublenden, habe ich Folgendes getan:
Im Aktivitäts-Tag von Manifest:
In Activity.java vor setContentView:
dh
// Titelleiste entfernen
// Benachrichtigungsleiste entfernen
HINWEIS : Sie müssen diese Zeilen vorher beibehalten
setContentView
quelle
Die erste Antwort ist Amphibol. Hier ist meine Erklärung: Hinzufügen:
in der Methode oncreate ().
Vor:
(nicht nur vor setContentView) Wenn Sie dies nicht tun, erhalten Sie Forceclose. +1 diese Antwort.
quelle
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: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
onCreate
Methode entfernen .quelle
So sieht der vollständige Code aus. Beachten Sie den Import von android.view.Window.
quelle
Fügen Sie in Ihrer Aktivität auf AndroidManifest.xml wie folgt theme @ style / Theme.AppCompat.Light.NoActionBar zu Ihrer Aktivität hinzu
quelle
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.
quelle
in manifesteste Datei hinzufügen,
füge folgende Zeile in deine Java-Datei ein,
quelle
Ich benutze Android Xamarin und das hat bei mir funktioniert.
quelle