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.


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>

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.