方法一:修改应用主题(推荐,一劳永逸)
找到并打开位于 app/src/main/res/values/目录下的 themes.xml文件。
将其中的主题父类(parent)修改为带有 .Bridge 后缀的版本,或者更兼容的 AppCompat主题。原主题可能类似:
修改为以下任一均可:
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
<style name="Theme.MyApp" parent="Theme.AppCompat.Light.DarkActionBar">
修改后,清理并重新构建项目(Build > Clean Project 和 Build > Rebuild Project),然后再次运行即可。
方法二:在布局文件中更改按钮类型
在您的布局文件((如 activity_main.xml)中,将 <Button ... />替换为 <android.widget.Button ... />
修改前:
<Button android:id="@+id/my_button" ... />
修改后:
<android.widget.Button android:id="@+id/my_button" ... />
方法三:使用Style和Drawable精细控制按钮样式
创建按钮背景Drawable:在 res/drawable文件夹下新建一个XML文件,例如 btn_custom_bg.xml,定义按钮的正常和按下状态。
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 按钮被按下时的颜色 --> <item android:state_pressed="true" android:drawable="@color/your_pressed_color" /> <!-- 默认状态的颜色 --> <item android:drawable="@color/your_normal_color" /> </selector>
应用自定义背景:在布局文件或Style中,为按钮设置这个背景。
重要提示:使用方法一或方法二解决紫色背景问题后,此方法可用于实现更复杂的视觉效果。如果未先解决主题冲突,直接设置 android:background可能依然无效。
总结与建议
对于新项目或想彻底解决问题,推荐方法一。
如果只是快速调整某个按钮,方法二最直接。
在解决背景色问题后,结合方法三可以让你的应用按钮更加精美。
版权声明
本文章如果涉及侵权,请联系我。
部分文章系本人原创未经许可,不得转载。



蒙公网安备 15090202000037号
评论列表
发表评论