ฉันจะใช้สไตล์กับปุ่มทั้งหมดของแอปพลิเคชัน 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
Maksim Dmitriev

คำตอบ:


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 ปุ่มจะหยุดทำงาน
James

9
อะไรคือความแตกต่างระหว่างparent="android:Widget.Button"และparent=@android:style/Widget.Button?
Bugs Happen

เหตุใดตัวแก้ไขโครงร่างจึงไม่แสดงตัวอย่างการเปลี่ยนแปลงตามรูปแบบปุ่มที่ตั้งไว้ในธีม
Killer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.