我知道如何将主题应用于整个应用程序,但是我将在哪里将主题应用于单个活动?
答案 0 :(得分:140)
您可以在清单文件中的android:theme
内加<activity>
,将主题应用于任何活动。
例如:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">
如果您想以编程方式设置主题,请在setTheme()
方法内调用setContentView()
和super.onCreate()
方法之前使用onCreate()
。
答案 1 :(得分:30)
在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);
在Manifest.xml中设置应用程序范围(所有活动):
<application
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
在Manifest.xml中设置活动范围(单个活动):
<activity
android:theme="@android:style/Theme.Holo"
android:theme="@style/MyTheme">
要构建自定义主题,您必须在其中声明主题 themes.xml文件,并在styles.xml文件中设置样式。
答案 2 :(得分:8)
在致电setContentView()
之前,请致电setTheme(android.R.style...)
,然后将...替换为您想要的主题(Theme,Theme_NoTitleBar等)。
或者,如果您的主题是自定义主题,则替换整个主题,以便获得setTheme(yourThemesResouceId)