Ich weiß, wie man ein Thema auf eine ganze Anwendung anwendet, aber wohin würde ich gehen, um ein Thema nur auf eine einzelne Aktivität anzuwenden?
85
Sie können , indem Sie ein Thema auf jede Aktivität gelten android:theme
innerhalb <activity>
innerhalb Manifest - Datei.
Beispielsweise:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">
Wenn Sie das Thema programmgesteuert festlegen möchten, verwenden Sie es setTheme()
vor dem Aufruf setContentView()
und der super.onCreate()
Methode innerhalb der onCreate()
Methode.
tools:context= ".YourAtivityName"
in der Wurzel verwendenSo programmieren Sie es programmgesteuert in Activity.java:
So legen Sie den Anwendungsbereich in Manifest.xml fest (alle Aktivitäten):
So legen Sie den Aktivitätsbereich in Manifest.xml fest (einzelne Aktivität):
Um ein benutzerdefiniertes Thema zu erstellen, müssen Sie das Thema in der Datei theme.xml deklarieren und Stile in der Datei styles.xml festlegen.
quelle
android:theme
Attribute hinzugefügt ?android:theme="@android:style/Theme.Holo"
ist die Syntax zum Hinzufügen eines integrierten Android-Themas.android:theme="@style/MyTheme"
ist die Syntax zum Hinzufügen eines benutzerdefinierten Themas, das in Ihrerstyles.xml
Datei beschrieben ist. In Ihrer eigentlichenAndroidManifest.xml
Datei würden Sie nur den einen oder anderen für jeden Abschnitt verwenden, nicht beide.styles.xml
und verwenden Sie dann die Syntaxandroid:theme=@style/MyBlankTheme
.Bevor Sie anrufen
setContentView()
, rufen Sie ansetTheme(android.R.style...)
und ersetzen Sie einfach das ... durch das gewünschte Thema (Theme, Theme_NoTitleBar usw.).Oder wenn Ihr Thema ein benutzerdefiniertes Thema ist, ersetzen Sie das gesamte Objekt, damit Sie erhalten
setTheme(yourThemesResouceId)
quelle