2012-09-13 3 views
6

기본 텍스트 모양 및 버튼 스타일을 정의하는 내 애플리케이션에 테마가 있습니다. Android의 동적 라디오 버튼에 테마 적용

<style name="AppTheme" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen"> 
    <item name="android:textAppearance">@style/TextAppearance.Medium</item> 
    <item name="android:textAppearanceLarge">@style/TextAppearance.Large</item> 
    <item name="android:textAppearanceMedium">@style/TextAppearance.Small</item> 
    <item name="android:textAppearanceSmall">@style/TextAppearance.Medium</item> 
    <item name="android:textColorPrimary">#000000</item> 
    <item name="android:textColorSecondary">#000000</item> 
    <item name="android:textColorTertiary">#000000</item> 
    <item name="android:buttonStyle">@style/Button</item> 
</style> 

<style name="TextAppearance" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">?android:attr/textColorPrimary</item> 
    <item name="android:textColorHint">?android:attr/textColorHint</item> 
</style> 

<style name="TextAppearance.Large"> 
    <item name="android:textColor">?android:attr/textColorPrimary</item> 
    <item name="android:textSize">32dp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

<style name="TextAppearance.Medium"> 
    <item name="android:textColor">?android:attr/textColorSecondary</item> 
    <item name="android:textSize">22dp</item> 
</style> 

<style name="TextAppearance.Small"> 
    <item name="android:textColor">?android:attr/textColorTertiary</item> 
    <item name="android:textSize">18dp</item> 
</style> 

<style name="Button" parent="@android:style/Widget.Button"> 
    <item name="android:textColor">?android:attr/textColorSecondary</item> 
    <item name="android:textColorHint">?android:attr/textColorHint</item> 
    <item name="android:textStyle">normal</item> 
    <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> 
</style> 

내가

RadioButton radioButton = new RadioButton(this, null, R.style.AppTheme); 

설명서의 RadioButton이 생성되고 텍스트가 제대로 스타일되지만 확인 마커가 사라를 사용하여의 RadioButton을 만들

. 왜?

버튼을 동적으로 추가하는 Buttongroup에 Radiobutton이 있습니다. 레이아웃을 통해 Button을 추가하면 마커가 제대로 표시됩니다. 그러나 동적으로 추가 된 버튼은 그렇지 않습니다.

답변

8

해결 방법은 RadioButton (this) 생성자를 사용하는 것이 었습니다.

defStyle-Constructor로 설정된 모든 스타일이 무시되고 마커가 제거되었습니다. 이것이 버그인지 또는 문서화되지 않았는지 확실하지 않습니다.

내 styles.xml에서 다른 stylings가 자동으로 이제 버튼에 적용 이후 실제로 필요하지 않지만, 누군가가 관심이있는 경우 :

내 "AppTheme"에

<item name="android:radioButtonStyle">@style/MyRadioButton</item> 

추가 스타일과 style.xml에

<style name="MyRadioButton" parent="@android:style/Widget.CompoundButton.RadioButton"> 
    <item name="android:textSize">5dp</item> 
</style> 

내 모든 라디오 버튼이의없이 마커과 스타일 텍스트 (를 표시합니다 생성자에서 그것을 etting).

+0

대단히 고맙습니다! –