สิ่งนี้ได้รับการปรับปรุงใน v23.0.0 ของไลบรารี AppCompat ด้วยการเพิ่มชุดรูปแบบเพิ่มเติมรวมถึง
Widget.AppCompat.Button.Colored
ก่อนอื่นรวมถึงการพึ่งพา appCompat หากคุณยังไม่ได้ดำเนินการ
compile('com.android.support:appcompat-v7:23.0.0') {
exclude group: 'com.google.android', module: 'support-v4'
}
ตอนนี้เนื่องจากคุณต้องใช้ v23 ของแอพที่ใช้ร่วมกันได้คุณจะต้องกำหนดเป้าหมาย SDK-v23 ด้วย!
compileSdkVersion = 23
targetSdkVersion = 23
ในตัวคุณ values/theme
<item name="android:buttonStyle">@style/BrandButtonStyle</item>
ในตัวคุณ values/style
<style name="BrandButtonStyle" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/yourButtonColor</item>
<item name="android:textColor">@color/White</item>
</style>
ในตัวคุณ values-v21/style
<style name="BrandButtonStyle" parent="Widget.AppCompat.Button.Colored">
<item name="android:colorButtonNormal">@color/yourButtonColor</item>
<item name="android:textColor">@color/White</item>
</style>
เนื่องจากชุดรูปแบบปุ่มของคุณจะขึ้นอยู่กับWidget.AppCompat.Button.Colored
สีของตัวอักษรบนปุ่มเป็นสีขาวเริ่มต้น!
แต่ดูเหมือนว่ามีปัญหาเมื่อคุณปิดการใช้งานปุ่มปุ่มจะเปลี่ยนสีเป็นสีเทาอ่อน แต่สีข้อความจะยังคงเป็นสีขาว!
วิธีแก้ปัญหาสำหรับสิ่งนี้คือการกำหนดสีข้อความบนปุ่มเป็นสีขาวโดยเฉพาะ! อย่างที่ฉันทำในสไตล์ที่แสดงด้านบน
ตอนนี้คุณสามารถกำหนดปุ่มของคุณและให้ AppCompat ทำส่วนที่เหลือ :)
<Button
android:layout_width="200dp"
android:layout_height="48dp" />
สถานะคนพิการ
รัฐที่เปิดใช้งาน
แก้ไข:
เพื่อเพิ่ม <Button android:theme="@style/BrandButtonStyle"/>