it-swarm.cn

将主题应用于Android中的活动?

我知道如何将主题应用于整个应用程序,但是我将在哪里将主题应用于单个活动?

68
Willy

您可以通过在清单文件中的Android:theme中包含<activity>来将主题应用于任何活动。

例如:

  1. <activity Android:theme="@Android:style/Theme.Dialog">
  2. <activity Android:theme="@style/CustomTheme">

如果你想以编程方式设置主题,那么在setTheme()方法中调用setContentView()super.onCreate()方法之前使用onCreate()

139
Paresh Mayani

要在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文件中设置样式。

30
live-love

在调用setContentView()之前,调用setTheme(Android.R.style...)并将...替换为您想要的主题(Theme,Theme_NoTitleBar等)。

或者如果你的主题是一个自定义主题,那么替换整个东西,所以你得到setTheme(yourThemesResouceId)

8
jcw