Bagaimana cara menerapkan gaya ke semua tombol aplikasi Android

131

Saya memiliki gaya yang diterapkan pada seluruh aplikasi saya:

AndroidManifest.xml:

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

Dan di styles.xml saya:

 <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>

Tetapi gaya tidak diterapkan.

Maaf jika saya hanya menggunakan nama palsu di ApplicationStyle- Item, tapi saya tidak tahu di mana harus mencari nama objek dan hanya diasumsikan, itu android:buttonberlaku untuk semua tombol.

whlk
sumber
1
Silakan lihat jawaban saya di stackoverflow.com/a/26625931/1065835
Maksim Dmitriev

Jawaban:

206

Untuk gaya Android, Anda mereferensikan atribut preset yang telah ditetapkan oleh Android R.attr. Dalam hal ini, sepertinya Anda ingin referensi android:buttonStyle. Saya pikir ini akan berhasil:

<style name="ApplicationStyle" parent="android:Theme">
  <item name="android:buttonStyle">@style/CKButton</item>
</style>
Dan Lew
sumber
1
Ya Tuhan, aku sudah lama mencari fungsi seperti itu. Tidak tahu mengapa tombol warna TextColor tidak mengikuti properti textColor tema utama. Terimakasih banyak!
Fenix ​​Voltres
Adakah yang tidak tahu bagaimana melakukan ini untuk pemintal?
Mike6679
31
Hanya satu catatan: jika gaya CKButton tidak mewarisi @android: style / Widget.Button, tombol akan berhenti bekerja.
James
9
apa perbedaan antara parent="android:Widget.Button" dan parent=@android:style/Widget.Button?
Bugs Terjadi
Mengapa editor tata letak tidak mempratinjau perubahan sesuai gaya tombol yang diatur dalam tema
Killer