2017-04-23 11 views
-1

:테마/스타일 우선? 을 감안할 때

  • 네 APPCOMPAT 활동 A, B, C 및 APPCOMPAT 테마에서 상속 D.
  • 개의 사용자 정의 테마 (T1, T2, T3와 T4). 또한

는 :

  • T1은 애플리케이션 매니페스트 파일에 적용된다.
  • T2는
  • T3는하지 OnCreate B에 프로그래밍 방식인가 매니페스트 파일 내부에 적용되는()
  • T4는 C의 레이아웃 파일의 루트 요소에 적용된다.

런타임에 각 활동의 결과 테마는 무엇이됩니까? 주제가 선행을합니까? 그들은 서로 섞이거나 서로를 덮어 씁니까?

매니페스트 파일 내에 T2가 적용되면 D가 발생하고 프로그래밍 방식으로 T3가 적용되고 레이아웃 파일은 T4를 적용합니까?

다양한 순서로 스타일을 적용하면 어떤 순서로 적용됩니까?

+2

에서 속성에 대해 당신은 자세한 내용을보실 수 있습니다


styles.xml 사이 themes.xml 더 concernable 차이가 없습니다 : 아니다, 나는 그 속성이


참고 소스 코드 내에서 적용받을 생각하십니까 숙제 문제 같은데 .... 코드를 실행할 때 무엇을 관찰 했습니까? –

+0

유사한 비슷한 설정을했는지, 무슨 일이 일어나지 않았는지 확인하십시오. 프로그래밍 방식으로/레이아웃에서 테마를 설정하는 것은 아무 일도하지 않습니다. 응용 프로그램과 T2를 A로 설정하면 어떤 종류의 병합이 발생합니다. –

+1

[Android의 스타일과 테마의 우선 순위는 무엇입니까?] 가능한 복제본 (http://stackoverflow.com/questions/12653988)// whats-the-precedence-of-styles and-themes-in-android) –

답변

1

T1은 응용 프로그램에 매니페스트 파일에 적용됩니다.

이것은 전체 앱에 적용되며 확장 한 테마와 여기에 덮어 쓴 내용이 있습니다. 예를 들어 app-wide 툴바 색상은 여기에 넣는 것이 일반적입니다. 앱 테마와 같은 부모를 사용하지 않는 한 당신은,이 활동에 대한 새로운 테마 의존성 체인을 만든

, 그것은해야합니다

T2는 매니페스트 파일 내부에 적용됩니다 다른 툴바 색상과 같은 독립적 인 속성

숨겨진 시스템 UI/전체 화면 테마와 같은 응용 프로그램 설정은 계속 유지됩니다.

T3가에서 onCreate()에서 B로, 프로그램에 적용된다

이 그 활동 매니페스트에 설정하고, 아무것도 T2보다

T4가 적용된 다른 안 재정의 C의 레이아웃 파일에 대한 루트 요소.

이것은 하나의보기에만 영향을 미칩니다. 예를 들어, 앱이나 활동이 전체 화면 테마를 사용하는 경우에도 여전히 적용되지만이보기를 양식에 추가했습니다.

예를 들어 루트보기는 단순히 TextView 일 수 있습니다. RelativeLayout, FrameLayout, CoordinatorLayout 등일 필요는 없습니다.

일반적으로 이러한 개별보기에 응용 프로그램/활동 수준 스타일을 적용하지 않습니다. 부모를 정의하는 Styles and Themes

+0

layout.xml에서 테마를 설정하는 것은 어떻습니까? 그런 다음 1. 프로그래밍 방식 재정의가 나타납니다. 2. manifest.act는 manifest.app를 재정의합니까? –

+0

당신이 말하는 XML의 요소에 달려 있습니다. 예를 들어 상단 RelativeLayout의 스타일은 manifest.app와 다른 별도의 테마입니다. –

+0

경로 요소에 적용하면 예 : T2는 NoToolbar의 자식이고 T3은 기본 apppcompat 테마의 자식입니다. 매니페스트에 T3를 적용하고 레이아웃 xml에 T2를 루트 요소에 적용합니다. 활동에 도구 모음이 없습니다. –