เปลี่ยนสีของปุ่มตามธีม

ฉันมีปัญหาในการเปลี่ยนสีพื้นหลังและสีข้อความของปุ่มในแอป

ฉันสร้างธีมใหม่เพื่อเล่นและลองใช้ รายการของฉันมีลักษณะดังนี้:

<application
    ...
    android:theme="@style/OrangeWhite">
    <activity android:name=".MainActivity">
    ...
</application>

theme.xml ของฉันมีลักษณะดังนี้:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="OrangeWhite" parent="android:Theme.Light">
        <item name="android:windowBackground">@color/OrangeWhite_bg_color</item>
        <item name="android:textColor">@color/OrangeWhite_wh_text</item>
        <item name="android:colorButtonNormal">@color/OrangeWhite_bg_btn</item>
    </style>

</resources>

การเปลี่ยนสีข้อความหรือพื้นหลังของกิจกรรมก็ใช้ได้ดี ปัญหาอยู่ที่ปุ่ม จำเป็นต้องระบุทุกปุ่มเพื่อใช้ธีม OrangeWhite หรือไม่...


person Community    schedule 26.07.2016    source แหล่งที่มา
comment
สร้างธีมอื่นและใช้งาน   -  person Vinothkumar Nataraj    schedule 26.07.2016
comment
อาจมีคำถามซ้ำกัน ดู สิ่งนี้   -  person FarshidABZ    schedule 26.07.2016
comment
@FarshidABZ ฉันทำตามที่กล่าวไว้ในลิงก์ แต่ดูเหมือนว่าผู้ปกครองจะไม่ทำงานเท่าที่ควรเนื่องจากการเปลี่ยนพื้นหลังของปุ่มก็เปลี่ยนขนาดตัวหนาและสิ่งอื่น ๆ ด้วย แม้ว่าฉันจะมี android:Theme.Light เป็นผู้ปกครองเหมือนเมื่อก่อน   -  person    schedule 26.07.2016


คำตอบ (1)


หากคุณใช้ธีม AppCompat เป็นพาเรนต์ ให้ลองใช้โค้ดด้านล่าง

หากคุณต้องการเปลี่ยนสไตล์ของปุ่มใดปุ่มหนึ่ง คุณสามารถกำหนดสไตล์ใหม่ได้ โดยสืบทอดสไตล์หลักแบบใดแบบหนึ่งที่อธิบายไว้ข้างต้น ในตัวอย่างด้านล่าง ฉันเพิ่งเปลี่ยนสีพื้นหลังและแบบอักษร:

<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>

จากนั้นคุณเพียงแค่ต้องใช้สไตล์ใหม่นี้บนปุ่มด้วย:

android:theme="@style/AppTheme.Button"
person Shrenik Shah    schedule 26.07.2016
comment
@VipinSahu ฉันได้แก้ไขรหัสแล้ว ลองสิ่งนี้และแจ้งให้เราทราบว่าช่วยได้หรือไม่ - person Shrenik Shah; 13.03.2018