Android의 활동에 테마를 적용 하시겠습니까?


86

전체 애플리케이션에 테마를 적용하는 방법을 알고 있지만 단일 활동에만 테마를 적용하려면 어디로 가야합니까?

답변:


158

당신은 포함하여 모든 활동에 테마를 적용 할 수있는 android:theme내부 <activity>매니페스트 파일 내부.

예를 들면 :

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

프로그래밍 방식으로 테마를 설정하려면 setTheme()호출하기 전에 사용 setContentView()하고 super.onCreate()메소드 내부에서 onCreate()메소드를 사용하십시오.


1
테마 비활성화는 어떻습니까? 단일 활동에
Yousha Aleayoub 2015-09-21

@Yousha Aleayoub : 방금 다른 테마를 설정해 보셨나요?
Yannick

아니,하지만 난 그냥 사용하지 않으려 / 테마를 제거하고 만들어 그것을 기본 ... :)
Yousha Aleayoub

1
및 활동 XML을 사용 tools:context= ".YourAtivityName"루트에
파이잘 Naseer

34

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 파일에서 스타일을 설정해야합니다.


1
테마 비활성화는 어떻습니까? 단일 활동에
Yousha Aleayoub 2015-09-21

2
두 가지 android:theme속성 을 추가 한 이유는 무엇 입니까?
Flame of udun

@Vineet Kaushik android:theme="@android:style/Theme.Holo"는 Android 기본 제공 테마를 추가하기위한 구문입니다. 파일에 android:theme="@style/MyTheme"설명 된 사용자 정의 테마를 추가하기위한 구문입니다 styles.xml. 실제 AndroidManifest.xml파일 에서는 각 섹션에 대해 둘 중 하나만 사용하고 둘 다 사용하지는 않습니다.
Soren Stoutner

1
@Yousha Aleayoub, 테마를 비활성화하려면에서 빈 테마를 styles.xml만든 다음 구문을 사용하십시오 android:theme=@style/MyBlankTheme.
Soren Stoutner

매니페스트에 둘 이상의 사용자 지정 테마를 넣는 것이 작동하지 않는 것 같습니다. 응용 프로그램 수준에서 테마를 추가하고 활동 수준에서 두 번째 테마를 추가하면 응용 프로그램 하나만 사용됩니다. 나는 각 활동에 대해 다른 "모양"을 가진 하나의 테마를 추가하려고했지만 좋은 결과는 없었다.
피터

8

당신은 전화를하기 전에 setContentView(), 전화를 setTheme(android.R.style...)그냥 당신이 (테마, Theme_NoTitleBar 등) 원하는 주제로 ...를 교체합니다.

또는 테마가 사용자 지정 테마 인 경우 전체 항목을 교체하면 setTheme(yourThemesResouceId)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.