Android 애플리케이션의 모든 버튼에 스타일을 적용하는 방법


131

전체 응용 프로그램에 적용되는 스타일이 있습니다.

AndroidManifest.xml :

<application android:theme="@style/ApplicationStyle" android:icon="@drawable/icon" android:label="@string/app_name">

그리고 내 styles.xml에서 :

 <style name="ApplicationStyle" parent="android:Theme">
  <item name="android:button">@style/CKButton</item>
 </style>
 <style name="CKButton" parent="android:style/Widget.Button">
  <item name="android:textSize">19sp</item>
  <item name="android:layout_margin">0dip</item>
  <item name="android:background">#ff0000</item>
 </style>

그러나 스타일은 적용되지 않습니다.

ApplicationStyle- 에서 잘못된 이름을 사용한 경우 미안 Item하지만 객체 이름을 어디에서 찾을 것인지에 대한 단서가 없으며 android:button모든 버튼에 적용됩니다.


1
내 대답에서 봐 주시기 바랍니다 stackoverflow.com/a/26625931/1065835
막심 드미트리

답변:


206

Android 스타일의 경우 Android에서 배치 한 사전 설정 속성을 참조하십시오 R.attr. 이 경우 참조하려는 것처럼 보입니다 android:buttonStyle. 나는 이것이 효과가 있다고 생각한다.

<style name="ApplicationStyle" parent="android:Theme">
  <item name="android:buttonStyle">@style/CKButton</item>
</style>

1
하나님, 나는 그러한 기능을 오랫동안 찾고있었습니다. 버튼의 textColor가 기본 테마의 textColor 속성을 따르지 않는 이유를 모르겠습니다. 고맙습니다!
Fenix ​​Voltres

아무도 스피너를 위해 이것을하는 방법이 없습니까?
Mike6679

31
한 가지 참고 사항 : CKButton 스타일이 @android : style / Widget.Button을 상속하지 않으면 버튼 작동이 중지됩니다.
제임스

9
사이의 차이가 무엇인가 parent="android:Widget.Button"와는 parent=@android:style/Widget.Button?
버그

테마에서 설정된 버튼 스타일에 따라 레이아웃 편집기가 변경 사항을 미리 보지 않는 이유
Killer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.