2011-01-31 4 views

답변

13

Android의 스타일은 상위 스타일을 가질 수 있습니다.

그래서 MyActivityTextViewGeneralTextView을 부모 스타일로 정의하고 스타일 속성을 변경/추가하십시오.

일부보기에서는 MyActivityTextView을, 다른보기에서는 GeneralTextView을 사용할 수 있습니다.

Defining Styles에 설명되어 있습니다.

당신은 당신의 style.xml 다른 하나 개의 스타일을 확장 할 수 있습니다
+0

오우. 정말 고마워. 고마워. 또 하나의 질문 : 자식 스타일도 부모 속성을 덮어 쓸 수 있습니까? – Bruiser

+1

예, 부모 속성을 무시할 수 있습니다. –

4

:

<style name="current_weekday_white" parent="current_day_white"> 
    <item name="android:textColor">#FFABAB</item> 
</style> 
+0

안녕하세요, 텍스트보기로 시도했지만 첫 번째 스타일 만 작동하고 확장 된 것은 작동하지 않습니다. 모든 단서? –

19

질문의 전반적인 가치에 추가 할 수있는 정보의 단지 작은 조각 - 뻔뻔 기술 : http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles

자신이 정의한 스타일에서 상속 받기를 원하면 parent 속성을 사용할 필요가 없습니다. 대신, 새로운 스타일의 이름에 상속 할 스타일의 이름 앞에 마침표를 붙이십시오. 예를 들어, 위에서 정의 된 CodeFont 스타일을 상속하는 새로운 스타일을 만들 수 있지만 붉은 색을 만들기 위해,이 같은 새 스타일을 작성할 수 있습니다

태그의 부모 속성이 없음을
<style name="CodeFont.Red"> 
     <item name="android:textColor">#FF0000</item> 
    </style> 

공지 사항,하지만 name 속성이 CodeFont 스타일 이름 (작성한 스타일)으로 시작하기 때문에이 스타일은 해당 스타일의 모든 스타일 속성을 상속받습니다. 그런 다음이 스타일은 android : textColor 속성을 재정 의하여 텍스트를 빨간색으로 만듭니다. 이 새 스타일은 @ style/CodeFont.Red로 참조 할 수 있습니다.

이름을 마침표로 묶어 원하는만큼 여러 번 상속 할 수 있습니다. 예를 들어 CodeFont.Red를 다음과 같이 확장 할 수 있습니다.

<style name="CodeFont.Red.Big"> 
    <item name="android:textSize">30sp</item> 
</style> 
+4

이전에 해당 페이지를 방문하고 연구/스키밍했지만 흥미롭고 유용한 유용한 정보를 몰랐다는 사실이 흥미 롭습니다. 고마워. @ 브루 져. – DavidDraughn

관련 문제