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.