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?
Antworten:
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 verwenden
So programmieren Sie es programmgesteuert in Activity.java:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.MyTheme); // (for Custom theme)
setTheme(android.R.style.Theme_Holo); // (for Android Built In Theme)
this.setContentView(R.layout.myactivity);
So legen Sie den Anwendungsbereich in Manifest.xml fest (alle Aktivitäten):
<application
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
So legen Sie den Aktivitätsbereich in Manifest.xml fest (einzelne Aktivität):
<activity
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
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.
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 Ihrer styles.xml
Datei beschrieben ist. In Ihrer eigentlichen AndroidManifest.xml
Datei würden Sie nur den einen oder anderen für jeden Abschnitt verwenden, nicht beide.
styles.xml
und verwenden Sie dann die Syntax android:theme=@style/MyBlankTheme
.
Bevor Sie anrufen setContentView()
, rufen Sie an setTheme(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)